[2025-12-22 01:15:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20250139912_20251222_011507.XML
[2025-12-22 01:15:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20250139912_20251222_011507.XML for user: 68f1466aed072ad4a
[2025-12-22 01:15:08] [INFO] File size: 5446 bytes
[2025-12-22 01:15:08] [INFO] Created FTPFiles record with ID: 69489b9c482e8a097
[2025-12-22 01:15:08] [INFO] About to extract fields from XML. File size: 5446 bytes
[2025-12-22 01:15:08] [INFO] Number of mappings: 28
[2025-12-22 01:15:08] [INFO] Starting XML parsing. Content length: 5446
[2025-12-22 01:15:08] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-22 01:15:08] [INFO] Processing 28 field mappings
[2025-12-22 01:15:08] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-22 01:15:08] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2025-12-22 01:15:08] [INFO]   -> Found value: MFD
EMS
[2025-12-22 01:15:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS"
[2025-12-22 01:15:08] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 01:15:08] [INFO] Found 2 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-22 01:15:08] [INFO]   -> Found value: 2025000377
2025019860
[2025-12-22 01:15:08] [INFO]   -> Set field 'incidentInternalId' = "2025000377\n2025019860"
[2025-12-22 01:15:08] [INFO]   -> Set field 'dispatchRunNumber' = "2025000377\n2025019860"
[2025-12-22 01:15:08] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-22 01:15:08] [INFO]   -> Found value: STROKE
[2025-12-22 01:15:08] [INFO]   -> Set field 'incidentTypeValue1' = "STROKE"
[2025-12-22 01:15:08] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-22 01:15:08] [INFO]   -> Found value: 305
[2025-12-22 01:15:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 305
[2025-12-22 01:15:08] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-22 01:15:08] [INFO]   -> Found value: TN
[2025-12-22 01:15:08] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 01:15:08] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-22 01:15:08] [INFO]   -> Found value: 38574
[2025-12-22 01:15:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2025-12-22 01:15:08] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-22 01:15:08] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:08] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-22 01:15:08] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:08] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-22 01:15:08] [INFO]   -> Found value: 36.15034
[2025-12-22 01:15:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.150339999999999918145476840436458587646484375
[2025-12-22 01:15:08] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-22 01:15:08] [INFO]   -> Found value: -85.27124
[2025-12-22 01:15:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.271240000000005920810508541762828826904296875
[2025-12-22 01:15:08] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-22 01:15:08] [INFO]   -> Found value: 2025-12-21 19:13:59
[2025-12-22 01:15:08] [INFO]   -> Set field 'alarm' = "2025-12-21 19:13:59"
[2025-12-22 01:15:08] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-22 01:15:08] [INFO]   -> Found value: 2025-12-21 19:15:00
[2025-12-22 01:15:08] [INFO]   -> Set field 'dispatched' = "2025-12-21 19:15:00"
[2025-12-22 01:15:08] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-22 01:15:08] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:08] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-22 01:15:08] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:08] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-22 01:15:08] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:08] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-22 01:15:08] [INFO]   -> Found value: N WALNUT ST/N OAK ST
[2025-12-22 01:15:08] [INFO]   -> Set field 'incidentLocationCross' = "N WALNUT ST\/N OAK ST"
[2025-12-22 01:15:08] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-22 01:15:08] [INFO]   -> Found value: MFR
[2025-12-22 01:15:08] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2025-12-22 01:15:08] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-22 01:15:08] [INFO]   -> Found value: 2025-12-21 19:15:00
[2025-12-22 01:15:08] [INFO]   -> Set field 'timedispatch' = "2025-12-21 19:15:00"
[2025-12-22 01:15:08] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-22 01:15:08] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:08] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-22 01:15:08] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:08] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-22 01:15:08] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:08] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-22 01:15:08] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:08] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-22 01:15:08] [INFO] Found 2 elements for 'CadInciNumber', concatenating 2 non-empty values
[2025-12-22 01:15:08] [INFO]   -> Found value: 20250139912
20250139911
[2025-12-22 01:15:08] [INFO]   -> Set field 'policeReportNumber' = "20250139912\n20250139911"
[2025-12-22 01:15:08] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-22 01:15:08] [INFO]   -> Found value: [EMS] PACEMAKER  [12/21/25 19:14:36 KMORGAN2] [EMS] HX OF HEART ISSUES//COPD  [12/21/25 19:14:33 KMO...
[2025-12-22 01:15:08] [INFO]   -> Set field 'dispatchNotes' = "[EMS] PACEMAKER  [12\/21\/25 19:14:36 KMORGAN2] [EMS] HX OF HEART ISSUES\/\/COPD  [12\/21\/25 19:14:33 KMORGAN2] [EMS] SAYS HE PASSED OUT AND WAS GRUNTING  [12\/21\/25 19:14:19 KMORGAN2] [APCO INTELLICOMM] Case ID: Z1eqI1dx6Z Caller Phone: 9312600092 Caller Name: VERIZON Incident Location: 305 W COMMERCIAL AVE Incident Location Detail: N WALNUT ST\/N OAK ST Nature: STROKE Incident #: 20250139911 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 19:14:00 PSUTIL01] Event spawned from STROKE.  [12\/21\/2025 19:13:59 KMORGAN2]"
[2025-12-22 01:15:08] [INFO]   -> Set field 'cADLog' = "[EMS] PACEMAKER  [12\/21\/25 19:14:36 KMORGAN2] [EMS] HX OF HEART ISSUES\/\/COPD  [12\/21\/25 19:14:33 KMORGAN2] [EMS] SAYS HE PASSED OUT AND WAS GRUNTING  [12\/21\/25 19:14:19 KMORGAN2] [APCO INTELLICOMM] Case ID: Z1eqI1dx6Z Caller Phone: 9312600092 Caller Name: VERIZON Incident Location: 305 W COMMERCIAL AVE Incident Location Detail: N WALNUT ST\/N OAK ST Nature: STROKE Incident #: 20250139911 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 19:14:00 PSUTIL01] Event spawned from STROKE.  [12\/21\/2025 19:13:59 KMORGAN2]"
[2025-12-22 01:15:08] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-22 01:15:08] [INFO]   -> Found value: MONTEREY
[2025-12-22 01:15:08] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2025-12-22 01:15:08] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-22 01:15:08] [INFO]   -> Found value: COMMERCIAL
[2025-12-22 01:15:08] [INFO]   -> Set field 'streetName' = "COMMERCIAL"
[2025-12-22 01:15:08] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-22 01:15:08] [INFO]   -> Found value: AVE
[2025-12-22 01:15:08] [INFO]   -> Set field 'streetType' = "AVE"
[2025-12-22 01:15:08] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-22 01:15:08] [INFO]   -> Found value: 305 W COMMERCIAL AVE
[2025-12-22 01:15:08] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "305 W COMMERCIAL AVE"
[2025-12-22 01:15:08] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-22 01:15:08] [INFO] Concatenating street name and type
[2025-12-22 01:15:08] [INFO]   -> Combined street name: COMMERCIAL AVE
[2025-12-22 01:15:08] [INFO] Built locationCoordinates from lat/lng: 36.15034,-85.27124
[2025-12-22 01:15:08] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS","incidentInternalId":"2025000377\n2025019860","dispatchRunNumber":"2025000377\n2025019860","incidentTypeValue1":"STROKE","incidentLocationStreetNumber":305,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.150339999999999918145476840436458587646484375,"nERISIncidentLongitude":-85.271240000000005920810508541762828826904296875,"alarm":"2025-12-21 19:13:59","dispatched":"2025-12-21 19:15:00","incidentLocationCross":"N WALNUT ST\/N OAK ST","cADVehicleID":"MFR","timedispatch":"2025-12-21 19:15:00","policeReportNumber":"20250139912\n20250139911","dispatchNotes":"[EMS] PACEMAKER  [12\/21\/25 19:14:36 KMORGAN2] [EMS] HX OF HEART ISSUES\/\/COPD  [12\/21\/25 19:14:33 KMORGAN2] [EMS] SAYS HE PASSED OUT AND WAS GRUNTING  [12\/21\/25 19:14:19 KMORGAN2] [APCO INTELLICOMM] Case ID: Z1eqI1dx6Z Caller Phone: 9312600092 Caller Name: VERIZON Incident Location: 305 W COMMERCIAL AVE Incident Location Detail: N WALNUT ST\/N OAK ST Nature: STROKE Incident #: 20250139911 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 19:14:00 PSUTIL01] Event spawned from STROKE.  [12\/21\/2025 19:13:59 KMORGAN2]","cADLog":"[EMS] PACEMAKER  [12\/21\/25 19:14:36 KMORGAN2] [EMS] HX OF HEART ISSUES\/\/COPD  [12\/21\/25 19:14:33 KMORGAN2] [EMS] SAYS HE PASSED OUT AND WAS GRUNTING  [12\/21\/25 19:14:19 KMORGAN2] [APCO INTELLICOMM] Case ID: Z1eqI1dx6Z Caller Phone: 9312600092 Caller Name: VERIZON Incident Location: 305 W COMMERCIAL AVE Incident Location Detail: N WALNUT ST\/N OAK ST Nature: STROKE Incident #: 20250139911 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 19:14:00 PSUTIL01] Event spawned from STROKE.  [12\/21\/2025 19:13:59 KMORGAN2]","incidentLocationCity":"MONTEREY","streetName":"COMMERCIAL AVE","incidentAddressTextVersionStreet":"305 W COMMERCIAL AVE","locationCoordinates":"36.15034,-85.27124"}
[2025-12-22 01:15:08] [INFO] Number of extracted fields: 21
[2025-12-22 01:15:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS'
[2025-12-22 01:15:08] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS', Parsed IDs = ["MFD","EMS"], Assigned Agencies count = 4
[2025-12-22 01:15:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS"]
[2025-12-22 01:15:08] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (position 1)
[2025-12-22 01:15:08] [INFO] Found SAASClient match: ID = 68e67aaba2bb4565e, Name = Monterey Fire Department for AgencyCode 'MFD'
[2025-12-22 01:15:08] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) based on AgencyCode 'MFD'
[2025-12-22 01:15:08] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["EMS"]
[2025-12-22 01:15:08] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2025-12-22 01:15:08] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"]
[2025-12-22 01:15:08] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2025-12-22 01:15:08] [INFO] Normalized cADNumber to first value: 2025000377
[2025-12-22 01:15:08] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"STROKE","saasclientId":"68e67aaba2bb4565e","name":"STROKE"}
[2025-12-22 01:15:09] [INFO] Created new IncidentTypeMapping with ID: 69489b9d06c9d7971
[2025-12-22 01:15:10] [INFO] Created new Dispatches record with ID: 69489b9d4e5ce1f56
[2025-12-22 01:15:10] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20250139912_20251222_011507.XML
[2025-12-22 01:15:10] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20250139912_20251222_011507.XML
[2025-12-22 01:15:48] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139914_20251222_011548.XML
[2025-12-22 01:15:48] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139914_20251222_011548.XML for user: 68f1466aed072ad4a
[2025-12-22 01:15:48] [INFO] File size: 6036 bytes
[2025-12-22 01:15:48] [INFO] Created FTPFiles record with ID: 69489bc4a12cc676f
[2025-12-22 01:15:48] [INFO] About to extract fields from XML. File size: 6036 bytes
[2025-12-22 01:15:48] [INFO] Number of mappings: 28
[2025-12-22 01:15:48] [INFO] Starting XML parsing. Content length: 6036
[2025-12-22 01:15:48] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-22 01:15:48] [INFO] Processing 28 field mappings
[2025-12-22 01:15:48] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-22 01:15:48] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2025-12-22 01:15:48] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2025-12-22 01:15:48] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2025-12-22 01:15:48] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 01:15:48] [INFO] Found 4 elements for 'ReportNumber', concatenating 3 non-empty values
[2025-12-22 01:15:48] [INFO]   -> Found value: 2025003131
2025019860
2025000377
[2025-12-22 01:15:48] [INFO]   -> Set field 'incidentInternalId' = "2025003131\n2025019860\n2025000377"
[2025-12-22 01:15:48] [INFO]   -> Set field 'dispatchRunNumber' = "2025003131\n2025019860\n2025000377"
[2025-12-22 01:15:48] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-22 01:15:48] [INFO]   -> Found value: STROKE
[2025-12-22 01:15:48] [INFO]   -> Set field 'incidentTypeValue1' = "STROKE"
[2025-12-22 01:15:48] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-22 01:15:48] [INFO]   -> Found value: 305
[2025-12-22 01:15:48] [INFO]   -> Set field 'incidentLocationStreetNumber' = 305
[2025-12-22 01:15:48] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-22 01:15:48] [INFO]   -> Found value: TN
[2025-12-22 01:15:48] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 01:15:48] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-22 01:15:48] [INFO]   -> Found value: 38574
[2025-12-22 01:15:48] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2025-12-22 01:15:48] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-22 01:15:48] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:48] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-22 01:15:48] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:48] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-22 01:15:48] [INFO]   -> Found value: 36.15034
[2025-12-22 01:15:48] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.150339999999999918145476840436458587646484375
[2025-12-22 01:15:48] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-22 01:15:48] [INFO]   -> Found value: -85.27124
[2025-12-22 01:15:48] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.271240000000005920810508541762828826904296875
[2025-12-22 01:15:48] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-22 01:15:48] [INFO]   -> Found value: 2025-12-21 19:15:07
[2025-12-22 01:15:48] [INFO]   -> Set field 'alarm' = "2025-12-21 19:15:07"
[2025-12-22 01:15:48] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-22 01:15:48] [INFO]   -> Found value: 2025-12-21 19:15:35
[2025-12-22 01:15:48] [INFO]   -> Set field 'dispatched' = "2025-12-21 19:15:35"
[2025-12-22 01:15:48] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-22 01:15:48] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:48] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-22 01:15:48] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:48] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-22 01:15:48] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:48] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-22 01:15:48] [INFO]   -> Found value: N WALNUT ST/N OAK ST
[2025-12-22 01:15:48] [INFO]   -> Set field 'incidentLocationCross' = "N WALNUT ST\/N OAK ST"
[2025-12-22 01:15:48] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-22 01:15:48] [INFO]   -> Found value: PCFR
[2025-12-22 01:15:48] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-22 01:15:48] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-22 01:15:48] [INFO]   -> Found value: 2025-12-21 19:15:35
[2025-12-22 01:15:48] [INFO]   -> Set field 'timedispatch' = "2025-12-21 19:15:35"
[2025-12-22 01:15:48] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-22 01:15:48] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:48] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-22 01:15:48] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:48] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-22 01:15:48] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:48] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-22 01:15:48] [INFO]   -> No value found (null or empty)
[2025-12-22 01:15:48] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-22 01:15:48] [INFO] Found 4 elements for 'CadInciNumber', concatenating 4 non-empty values
[2025-12-22 01:15:48] [INFO]   -> Found value: 20250139914
20250139911
20250139912
20250139915
[2025-12-22 01:15:48] [INFO]   -> Set field 'policeReportNumber' = "20250139914\n20250139911\n20250139912\n20250139915"
[2025-12-22 01:15:48] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-22 01:15:48] [INFO]   -> Found value: [APCO INTELLICOMM] Caller Name: MICHAEL FARLEY  [12/21/25 19:15:31 PSUTIL01] [EMS] OUTSIDE ON STEPS ...
[2025-12-22 01:15:48] [INFO]   -> Set field 'dispatchNotes' = "[APCO INTELLICOMM] Caller Name: MICHAEL FARLEY  [12\/21\/25 19:15:31 PSUTIL01] [EMS] OUTSIDE ON STEPS  [12\/21\/25 19:15:15 KMORGAN2] Event spawned from STROKE.  [12\/21\/2025 19:15:07 DSWINK] [EMS] UNCONSCIOUS  [12\/21\/25 19:15:07 KMORGAN2] [EMS] PACEMAKER  [12\/21\/25 19:14:36 KMORGAN2] [EMS] HX OF HEART ISSUES\/\/COPD  [12\/21\/25 19:14:33 KMORGAN2] [EMS] SAYS HE PASSED OUT AND WAS GRUNTING  [12\/21\/25 19:14:19 KMORGAN2] [APCO INTELLICOMM] Case ID: Z1eqI1dx6Z Caller Phone: 9312600092 Caller Name: VERIZON Incident Location: 305 W COMMERCIAL AVE Incident Location Detail: N WALNUT ST\/N OAK ST Nature: STROKE Incident #: 20250139911 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 19:14:00 PSUTIL01] Event spawned from STROKE.  [12\/21\/2025 19:13:59 KMORGAN2]"
[2025-12-22 01:15:48] [INFO]   -> Set field 'cADLog' = "[APCO INTELLICOMM] Caller Name: MICHAEL FARLEY  [12\/21\/25 19:15:31 PSUTIL01] [EMS] OUTSIDE ON STEPS  [12\/21\/25 19:15:15 KMORGAN2] Event spawned from STROKE.  [12\/21\/2025 19:15:07 DSWINK] [EMS] UNCONSCIOUS  [12\/21\/25 19:15:07 KMORGAN2] [EMS] PACEMAKER  [12\/21\/25 19:14:36 KMORGAN2] [EMS] HX OF HEART ISSUES\/\/COPD  [12\/21\/25 19:14:33 KMORGAN2] [EMS] SAYS HE PASSED OUT AND WAS GRUNTING  [12\/21\/25 19:14:19 KMORGAN2] [APCO INTELLICOMM] Case ID: Z1eqI1dx6Z Caller Phone: 9312600092 Caller Name: VERIZON Incident Location: 305 W COMMERCIAL AVE Incident Location Detail: N WALNUT ST\/N OAK ST Nature: STROKE Incident #: 20250139911 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 19:14:00 PSUTIL01] Event spawned from STROKE.  [12\/21\/2025 19:13:59 KMORGAN2]"
[2025-12-22 01:15:48] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-22 01:15:48] [INFO]   -> Found value: MONTEREY
[2025-12-22 01:15:48] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2025-12-22 01:15:48] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-22 01:15:48] [INFO]   -> Found value: COMMERCIAL
[2025-12-22 01:15:48] [INFO]   -> Set field 'streetName' = "COMMERCIAL"
[2025-12-22 01:15:48] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-22 01:15:48] [INFO]   -> Found value: AVE
[2025-12-22 01:15:48] [INFO]   -> Set field 'streetType' = "AVE"
[2025-12-22 01:15:48] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-22 01:15:48] [INFO]   -> Found value: 305 W COMMERCIAL AVE
[2025-12-22 01:15:48] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "305 W COMMERCIAL AVE"
[2025-12-22 01:15:48] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-22 01:15:48] [INFO] Concatenating street name and type
[2025-12-22 01:15:48] [INFO]   -> Combined street name: COMMERCIAL AVE
[2025-12-22 01:15:48] [INFO] Built locationCoordinates from lat/lng: 36.15034,-85.27124
[2025-12-22 01:15:48] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2025003131\n2025019860\n2025000377","dispatchRunNumber":"2025003131\n2025019860\n2025000377","incidentTypeValue1":"STROKE","incidentLocationStreetNumber":305,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.150339999999999918145476840436458587646484375,"nERISIncidentLongitude":-85.271240000000005920810508541762828826904296875,"alarm":"2025-12-21 19:15:07","dispatched":"2025-12-21 19:15:35","incidentLocationCross":"N WALNUT ST\/N OAK ST","cADVehicleID":"PCFR","timedispatch":"2025-12-21 19:15:35","policeReportNumber":"20250139914\n20250139911\n20250139912\n20250139915","dispatchNotes":"[APCO INTELLICOMM] Caller Name: MICHAEL FARLEY  [12\/21\/25 19:15:31 PSUTIL01] [EMS] OUTSIDE ON STEPS  [12\/21\/25 19:15:15 KMORGAN2] Event spawned from STROKE.  [12\/21\/2025 19:15:07 DSWINK] [EMS] UNCONSCIOUS  [12\/21\/25 19:15:07 KMORGAN2] [EMS] PACEMAKER  [12\/21\/25 19:14:36 KMORGAN2] [EMS] HX OF HEART ISSUES\/\/COPD  [12\/21\/25 19:14:33 KMORGAN2] [EMS] SAYS HE PASSED OUT AND WAS GRUNTING  [12\/21\/25 19:14:19 KMORGAN2] [APCO INTELLICOMM] Case ID: Z1eqI1dx6Z Caller Phone: 9312600092 Caller Name: VERIZON Incident Location: 305 W COMMERCIAL AVE Incident Location Detail: N WALNUT ST\/N OAK ST Nature: STROKE Incident #: 20250139911 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 19:14:00 PSUTIL01] Event spawned from STROKE.  [12\/21\/2025 19:13:59 KMORGAN2]","cADLog":"[APCO INTELLICOMM] Caller Name: MICHAEL FARLEY  [12\/21\/25 19:15:31 PSUTIL01] [EMS] OUTSIDE ON STEPS  [12\/21\/25 19:15:15 KMORGAN2] Event spawned from STROKE.  [12\/21\/2025 19:15:07 DSWINK] [EMS] UNCONSCIOUS  [12\/21\/25 19:15:07 KMORGAN2] [EMS] PACEMAKER  [12\/21\/25 19:14:36 KMORGAN2] [EMS] HX OF HEART ISSUES\/\/COPD  [12\/21\/25 19:14:33 KMORGAN2] [EMS] SAYS HE PASSED OUT AND WAS GRUNTING  [12\/21\/25 19:14:19 KMORGAN2] [APCO INTELLICOMM] Case ID: Z1eqI1dx6Z Caller Phone: 9312600092 Caller Name: VERIZON Incident Location: 305 W COMMERCIAL AVE Incident Location Detail: N WALNUT ST\/N OAK ST Nature: STROKE Incident #: 20250139911 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 19:14:00 PSUTIL01] Event spawned from STROKE.  [12\/21\/2025 19:13:59 KMORGAN2]","incidentLocationCity":"MONTEREY","streetName":"COMMERCIAL AVE","incidentAddressTextVersionStreet":"305 W COMMERCIAL AVE","locationCoordinates":"36.15034,-85.27124"}
[2025-12-22 01:15:48] [INFO] Number of extracted fields: 21
[2025-12-22 01:15:48] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2025-12-22 01:15:48] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Assigned Agencies count = 4
[2025-12-22 01:15:48] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2025-12-22 01:15:48] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (position 1)
[2025-12-22 01:15:48] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department for AgencyCode 'PCFD'
[2025-12-22 01:15:48] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on AgencyCode 'PCFD'
[2025-12-22 01:15:48] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["EMS","MFD","RESC"]
[2025-12-22 01:15: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"]
[2025-12-22 01:15:49] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-22 01:15:49] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-22 01:15:49] [INFO] Normalized cADNumber to first value: 2025003131
[2025-12-22 01:15:49] [INFO] Found existing IncidentTypeMapping with ID: 69458359c1b866667
[2025-12-22 01:15:52] [INFO] Created new Dispatches record with ID: 69489bc5bb5eea8dc
[2025-12-22 01:15:52] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139914_20251222_011548.XML
[2025-12-22 01:15:52] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139914_20251222_011548.XML
[2025-12-22 01:16:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20250139917_20251222_011627.XML
[2025-12-22 01:16:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20250139917_20251222_011627.XML for user: 68f1466aed072ad4a
[2025-12-22 01:16:27] [INFO] File size: 5690 bytes
[2025-12-22 01:16:28] [INFO] Created FTPFiles record with ID: 69489bec24a2dc111
[2025-12-22 01:16:28] [INFO] About to extract fields from XML. File size: 5690 bytes
[2025-12-22 01:16:28] [INFO] Number of mappings: 28
[2025-12-22 01:16:28] [INFO] Starting XML parsing. Content length: 5690
[2025-12-22 01:16:28] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-22 01:16:28] [INFO] Processing 28 field mappings
[2025-12-22 01:16:28] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-22 01:16:28] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-22 01:16:28] [INFO]   -> Found value: BFD
EMS
BPD
[2025-12-22 01:16:28] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS\nBPD"
[2025-12-22 01:16:28] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 01:16:28] [INFO] Found 3 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-22 01:16:28] [INFO]   -> Found value: 2025000392
2025019861
[2025-12-22 01:16:28] [INFO]   -> Set field 'incidentInternalId' = "2025000392\n2025019861"
[2025-12-22 01:16:28] [INFO]   -> Set field 'dispatchRunNumber' = "2025000392\n2025019861"
[2025-12-22 01:16:28] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-22 01:16:28] [INFO]   -> Found value: CHEST PAIN
[2025-12-22 01:16:28] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2025-12-22 01:16:28] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-22 01:16:28] [INFO]   -> Found value: 415
[2025-12-22 01:16:28] [INFO]   -> Set field 'incidentLocationStreetNumber' = 415
[2025-12-22 01:16:28] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-22 01:16:28] [INFO]   -> Found value: TN
[2025-12-22 01:16:28] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 01:16:28] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-22 01:16:28] [INFO]   -> Found value: 38544
[2025-12-22 01:16:28] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2025-12-22 01:16:28] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-22 01:16:28] [INFO]   -> No value found (null or empty)
[2025-12-22 01:16:28] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-22 01:16:28] [INFO]   -> No value found (null or empty)
[2025-12-22 01:16:28] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-22 01:16:28] [INFO]   -> Found value: 36.15605
[2025-12-22 01:16:28] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.15605000000000046611603465862572193145751953125
[2025-12-22 01:16:28] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-22 01:16:28] [INFO]   -> Found value: -85.63985
[2025-12-22 01:16:28] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.639849999999995588950696401298046112060546875
[2025-12-22 01:16:28] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-22 01:16:28] [INFO]   -> Found value: 2025-12-21 19:15:42
[2025-12-22 01:16:28] [INFO]   -> Set field 'alarm' = "2025-12-21 19:15:42"
[2025-12-22 01:16:28] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-22 01:16:28] [INFO]   -> Found value: 2025-12-21 19:16:23
[2025-12-22 01:16:28] [INFO]   -> Set field 'dispatched' = "2025-12-21 19:16:23"
[2025-12-22 01:16:28] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-22 01:16:28] [INFO]   -> No value found (null or empty)
[2025-12-22 01:16:28] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-22 01:16:28] [INFO]   -> No value found (null or empty)
[2025-12-22 01:16:28] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-22 01:16:28] [INFO]   -> No value found (null or empty)
[2025-12-22 01:16:28] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-22 01:16:28] [INFO]   -> Found value: FOURTH AVE N/FIFTH AVE N
[2025-12-22 01:16:28] [INFO]   -> Set field 'incidentLocationCross' = "FOURTH AVE N\/FIFTH AVE N"
[2025-12-22 01:16:28] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-22 01:16:28] [INFO]   -> Found value: BEN2
[2025-12-22 01:16:28] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2025-12-22 01:16:28] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-22 01:16:28] [INFO]   -> Found value: 2025-12-21 19:16:23
[2025-12-22 01:16:28] [INFO]   -> Set field 'timedispatch' = "2025-12-21 19:16:23"
[2025-12-22 01:16:28] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-22 01:16:28] [INFO]   -> No value found (null or empty)
[2025-12-22 01:16:28] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-22 01:16:28] [INFO]   -> No value found (null or empty)
[2025-12-22 01:16:28] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-22 01:16:28] [INFO]   -> No value found (null or empty)
[2025-12-22 01:16:28] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-22 01:16:28] [INFO]   -> No value found (null or empty)
[2025-12-22 01:16:28] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-22 01:16:28] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-22 01:16:28] [INFO]   -> Found value: 20250139917
20250139913
20250139916
[2025-12-22 01:16:28] [INFO]   -> Set field 'policeReportNumber' = "20250139917\n20250139913\n20250139916"
[2025-12-22 01:16:28] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-22 01:16:28] [INFO]   -> Found value: [EMS] DONALD COLE  [12/21/25 19:16:03 EALMENDAREZ] [EMS] FRONT DOOR ENTRANCE  [12/21/25 19:15:55 EAL...
[2025-12-22 01:16:28] [INFO]   -> Set field 'dispatchNotes' = "[EMS] DONALD COLE  [12\/21\/25 19:16:03 EALMENDAREZ] [EMS] FRONT DOOR ENTRANCE  [12\/21\/25 19:15:55 EALMENDAREZ] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [12\/21\/25 19:15:48 ECLEMENS] [APCO INTELLICOMM] Case ID: rzsZGHvkYw Caller Phone: (empty) Caller Name: (empty) Incident Location: 415 WALNUT ST Incident Location Detail: FOURTH AVE N\/FIFTH AVE N Nature: CHEST PAIN Incident #: 20250139913 CAD Call Taker: EALMENDAREZ Chief Complaint: (empty)  [12\/21\/25 19:15:43 PSUTIL01] Event spawned from CHEST PAIN.  [12\/21\/2025 19:15:42 EALMENDAREZ] BACK AND HIP PAIN VOMITING HEART ATTACK AND STROKE HX CHECK DISCOMFORT  [12\/21\/25 19:15:35 EALMENDAREZ]]"
[2025-12-22 01:16:28] [INFO]   -> Set field 'cADLog' = "[EMS] DONALD COLE  [12\/21\/25 19:16:03 EALMENDAREZ] [EMS] FRONT DOOR ENTRANCE  [12\/21\/25 19:15:55 EALMENDAREZ] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [12\/21\/25 19:15:48 ECLEMENS] [APCO INTELLICOMM] Case ID: rzsZGHvkYw Caller Phone: (empty) Caller Name: (empty) Incident Location: 415 WALNUT ST Incident Location Detail: FOURTH AVE N\/FIFTH AVE N Nature: CHEST PAIN Incident #: 20250139913 CAD Call Taker: EALMENDAREZ Chief Complaint: (empty)  [12\/21\/25 19:15:43 PSUTIL01] Event spawned from CHEST PAIN.  [12\/21\/2025 19:15:42 EALMENDAREZ] BACK AND HIP PAIN VOMITING HEART ATTACK AND STROKE HX CHECK DISCOMFORT  [12\/21\/25 19:15:35 EALMENDAREZ]]"
[2025-12-22 01:16:28] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-22 01:16:28] [INFO]   -> Found value: BAXTER
[2025-12-22 01:16:28] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2025-12-22 01:16:28] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-22 01:16:28] [INFO]   -> Found value: WALNUT
[2025-12-22 01:16:28] [INFO]   -> Set field 'streetName' = "WALNUT"
[2025-12-22 01:16:28] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-22 01:16:28] [INFO]   -> Found value: ST
[2025-12-22 01:16:28] [INFO]   -> Set field 'streetType' = "ST"
[2025-12-22 01:16:28] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-22 01:16:28] [INFO]   -> Found value: 415 WALNUT ST
[2025-12-22 01:16:28] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "415 WALNUT ST"
[2025-12-22 01:16:28] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-22 01:16:28] [INFO] Concatenating street name and type
[2025-12-22 01:16:28] [INFO]   -> Combined street name: WALNUT ST
[2025-12-22 01:16:28] [INFO] Built locationCoordinates from lat/lng: 36.15605,-85.63985
[2025-12-22 01:16:28] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nEMS\nBPD","incidentInternalId":"2025000392\n2025019861","dispatchRunNumber":"2025000392\n2025019861","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":415,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.15605000000000046611603465862572193145751953125,"nERISIncidentLongitude":-85.639849999999995588950696401298046112060546875,"alarm":"2025-12-21 19:15:42","dispatched":"2025-12-21 19:16:23","incidentLocationCross":"FOURTH AVE N\/FIFTH AVE N","cADVehicleID":"BEN2","timedispatch":"2025-12-21 19:16:23","policeReportNumber":"20250139917\n20250139913\n20250139916","dispatchNotes":"[EMS] DONALD COLE  [12\/21\/25 19:16:03 EALMENDAREZ] [EMS] FRONT DOOR ENTRANCE  [12\/21\/25 19:15:55 EALMENDAREZ] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [12\/21\/25 19:15:48 ECLEMENS] [APCO INTELLICOMM] Case ID: rzsZGHvkYw Caller Phone: (empty) Caller Name: (empty) Incident Location: 415 WALNUT ST Incident Location Detail: FOURTH AVE N\/FIFTH AVE N Nature: CHEST PAIN Incident #: 20250139913 CAD Call Taker: EALMENDAREZ Chief Complaint: (empty)  [12\/21\/25 19:15:43 PSUTIL01] Event spawned from CHEST PAIN.  [12\/21\/2025 19:15:42 EALMENDAREZ] BACK AND HIP PAIN VOMITING HEART ATTACK AND STROKE HX CHECK DISCOMFORT  [12\/21\/25 19:15:35 EALMENDAREZ]]","cADLog":"[EMS] DONALD COLE  [12\/21\/25 19:16:03 EALMENDAREZ] [EMS] FRONT DOOR ENTRANCE  [12\/21\/25 19:15:55 EALMENDAREZ] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [12\/21\/25 19:15:48 ECLEMENS] [APCO INTELLICOMM] Case ID: rzsZGHvkYw Caller Phone: (empty) Caller Name: (empty) Incident Location: 415 WALNUT ST Incident Location Detail: FOURTH AVE N\/FIFTH AVE N Nature: CHEST PAIN Incident #: 20250139913 CAD Call Taker: EALMENDAREZ Chief Complaint: (empty)  [12\/21\/25 19:15:43 PSUTIL01] Event spawned from CHEST PAIN.  [12\/21\/2025 19:15:42 EALMENDAREZ] BACK AND HIP PAIN VOMITING HEART ATTACK AND STROKE HX CHECK DISCOMFORT  [12\/21\/25 19:15:35 EALMENDAREZ]]","incidentLocationCity":"BAXTER","streetName":"WALNUT ST","incidentAddressTextVersionStreet":"415 WALNUT ST","locationCoordinates":"36.15605,-85.63985"}
[2025-12-22 01:16:28] [INFO] Number of extracted fields: 21
[2025-12-22 01:16:28] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS
BPD'
[2025-12-22 01:16:28] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
EMS
BPD', Parsed IDs = ["BFD","EMS","BPD"], Assigned Agencies count = 4
[2025-12-22 01:16:28] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS","BPD"]
[2025-12-22 01:16:28] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (position 1)
[2025-12-22 01:16:28] [INFO] Found SAASClient match: ID = 68d1820f7ad4dadbd, Name = Baxter Fire Department for AgencyCode 'BFD'
[2025-12-22 01:16:28] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) based on AgencyCode 'BFD'
[2025-12-22 01:16:28] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["EMS","BPD"]
[2025-12-22 01:16:28] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2025-12-22 01:16:28] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"]
[2025-12-22 01:16:28] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2025-12-22 01:16:28] [INFO] Normalized cADNumber to first value: 2025000392
[2025-12-22 01:16:28] [INFO] Found existing IncidentTypeMapping with ID: 6945b04638c613faf
[2025-12-22 01:16:31] [INFO] Created new Dispatches record with ID: 69489becee905c75c
[2025-12-22 01:16:31] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20250139917_20251222_011627.XML
[2025-12-22 01:16:31] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20250139917_20251222_011627.XML
[2025-12-22 02:16:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-30510.xml
[2025-12-22 02:16:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-30510.xml for user: 68d56363ec1209189
[2025-12-22 02:16:08] [INFO] File size: 2222 bytes
[2025-12-22 02:16:08] [INFO] Created FTPFiles record with ID: 6948a9e85aa0bd71c
[2025-12-22 02:16:08] [INFO] About to extract fields from XML. File size: 2222 bytes
[2025-12-22 02:16:08] [INFO] Number of mappings: 21
[2025-12-22 02:16:08] [INFO] Starting XML parsing. Content length: 2222
[2025-12-22 02:16:08] [INFO] XML parsed successfully. Root element: Incident
[2025-12-22 02:16:08] [INFO] Processing 21 field mappings
[2025-12-22 02:16:08] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2025-12-22 02:16:08] [INFO]   -> Found value: 25-30510
[2025-12-22 02:16:08] [INFO]   -> Set field 'dispatchRunNumber' = "25-30510"
[2025-12-22 02:16:08] [INFO]   -> Set field 'cADNumber' = "25-30510"
[2025-12-22 02:16:08] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-22 02:16:08] [INFO]   -> No value found (null or empty)
[2025-12-22 02:16:08] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-22 02:16:08] [INFO]   -> Found value: MAPLE ST
[2025-12-22 02:16:08] [INFO]   -> Set field 'streetName' = "MAPLE ST"
[2025-12-22 02:16:08] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-22 02:16:08] [INFO]   -> No value found (null or empty)
[2025-12-22 02:16:08] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-22 02:16:08] [INFO]   -> Found value: SIKESTON
[2025-12-22 02:16:08] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2025-12-22 02:16:08] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-22 02:16:08] [INFO]   -> No value found (null or empty)
[2025-12-22 02:16:08] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-22 02:16:08] [INFO]   -> No value found (null or empty)
[2025-12-22 02:16:08] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-22 02:16:08] [INFO]   -> No value found (null or empty)
[2025-12-22 02:16:08] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-22 02:16:08] [INFO]   -> Found value: 0
[2025-12-22 02:16:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-22 02:16:08] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-22 02:16:08] [INFO]   -> Found value: 0
[2025-12-22 02:16:08] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-22 02:16:08] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-22 02:16:08] [INFO]   -> Found value: FIRE-OUT OF TOWN
[2025-12-22 02:16:08] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-OUT OF TOWN"
[2025-12-22 02:16:08] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-22 02:16:08] [INFO]   -> Found value: 12-21-2025 18:29:25|SMALL PATCHES OF FIRE ONE HEADING TOWARDS TREES AND FIELD 12-21-2025 18:42:05|55...
[2025-12-22 02:16:08] [INFO]   -> Set field 'dispatchNotes' = "12-21-2025 18:29:25|SMALL PATCHES OF FIRE ONE HEADING TOWARDS TREES AND FIELD 12-21-2025 18:42:05|553 ON SCENE SMALL GRASS FIRE"
[2025-12-22 02:16:08] [INFO]   -> Set field 'cADLog' = "12-21-2025 18:29:25|SMALL PATCHES OF FIRE ONE HEADING TOWARDS TREES AND FIELD 12-21-2025 18:42:05|553 ON SCENE SMALL GRASS FIRE"
[2025-12-22 02:16:08] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-22 02:16:08] [INFO]   -> Found value: 12-21-2025T18:31:28
[2025-12-22 02:16:08] [INFO] Reformatted DD-MM-YYYY date '12-21-2025' (day=12, month=21) to ISO: 2025-21-12T18:31:28
[2025-12-22 02:16:08] [ERROR] Error formatting datetime '2025-21-12T18:31:28': Failed to parse time string (2025-21-12T18:31:28) at position 6 (1): Unexpected character
[2025-12-22 02:16:08] [INFO]   -> Set field 'alarm' = null
[2025-12-22 02:16:08] [INFO] Reformatted DD-MM-YYYY date '12-21-2025' (day=12, month=21) to ISO: 2025-21-12T18:31:28
[2025-12-22 02:16:08] [ERROR] Error formatting datetime '2025-21-12T18:31:28': Failed to parse time string (2025-21-12T18:31:28) at position 6 (1): Unexpected character
[2025-12-22 02:16:08] [INFO]   -> Set field 'dispatched' = null
[2025-12-22 02:16:08] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-22 02:16:08] [INFO]   -> No value found (null or empty)
[2025-12-22 02:16:08] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-22 02:16:08] [INFO]   -> No value found (null or empty)
[2025-12-22 02:16:08] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-22 02:16:08] [INFO]   -> Found value: CANCEL
[2025-12-22 02:16:08] [INFO]   -> Set field 'cADVehicleID' = "CANCEL"
[2025-12-22 02:16:08] [INFO]   -> Set field 'name' = "CANCEL"
[2025-12-22 02:16:08] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-22 02:16:08] [INFO]   -> No value found (null or empty)
[2025-12-22 02:16:08] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-22 02:16:08] [INFO]   -> No value found (null or empty)
[2025-12-22 02:16:08] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-22 02:16:08] [INFO]   -> Found value: 12-21-2025T20:15:15
[2025-12-22 02:16:08] [INFO] Reformatted DD-MM-YYYY date '12-21-2025' (day=12, month=21) to ISO: 2025-21-12T20:15:15
[2025-12-22 02:16:08] [ERROR] Error formatting datetime '2025-21-12T20:15:15': Failed to parse time string (2025-21-12T20:15:15) at position 6 (1): Unexpected character
[2025-12-22 02:16:08] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 02:16:08] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-22 02:16:08] [INFO]   -> Found value: 12-21-2025T18:46:28
[2025-12-22 02:16:08] [INFO] Reformatted DD-MM-YYYY date '12-21-2025' (day=12, month=21) to ISO: 2025-21-12T18:46:28
[2025-12-22 02:16:08] [ERROR] Error formatting datetime '2025-21-12T18:46:28': Failed to parse time string (2025-21-12T18:46:28) at position 6 (1): Unexpected character
[2025-12-22 02:16:08] [INFO]   -> Set field 'timedispatch' = null
[2025-12-22 02:16:08] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-22 02:16:08] [INFO]   -> Found value: SDPSFD
[2025-12-22 02:16:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2025-12-22 02:16:08] [INFO] Finished extracting fields. Total fields extracted: 16
[2025-12-22 02:16:08] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-22 02:16:08] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-30510","cADNumber":"25-30510","streetName":"MAPLE ST","incidentLocationCity":"SIKESTON","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-OUT OF TOWN","dispatchNotes":"12-21-2025 18:29:25|SMALL PATCHES OF FIRE ONE HEADING TOWARDS TREES AND FIELD 12-21-2025 18:42:05|553 ON SCENE SMALL GRASS FIRE","cADLog":"12-21-2025 18:29:25|SMALL PATCHES OF FIRE ONE HEADING TOWARDS TREES AND FIELD 12-21-2025 18:42:05|553 ON SCENE SMALL GRASS FIRE","alarm":null,"dispatched":null,"cADVehicleID":"CANCEL","name":"CANCEL","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2025-12-22 02:16:08] [INFO] Number of extracted fields: 17
[2025-12-22 02:16:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2025-12-22 02:16:08] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Assigned Agencies count = 2
[2025-12-22 02:16:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2025-12-22 02:16:08] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (position 1)
[2025-12-22 02:16:08] [INFO] Found SAASClient match: ID = 6772cab7157b2ebde, Name = Sikeston DPS for AgencyCode 'SDPSFD'
[2025-12-22 02:16:08] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) based on AgencyCode 'SDPSFD'
[2025-12-22 02:16:08] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-22 02:16:08] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-22 02:16:08] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2025-12-22 02:16:08] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e878336f04
[2025-12-22 02:16:10] [INFO] Created new Dispatches record with ID: 6948a9e91a4a28408
[2025-12-22 02:16:10] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-30510.xml
[2025-12-22 02:16:10] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-30510.xml
[2025-12-22 03:09:37] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139950_20251222_030937.XML
[2025-12-22 03:09:37] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139950_20251222_030937.XML for user: 68f1466aed072ad4a
[2025-12-22 03:09:37] [INFO] File size: 5521 bytes
[2025-12-22 03:09:38] [INFO] Created FTPFiles record with ID: 6948b67217caae15f
[2025-12-22 03:09:38] [INFO] About to extract fields from XML. File size: 5521 bytes
[2025-12-22 03:09:38] [INFO] Number of mappings: 28
[2025-12-22 03:09:38] [INFO] Starting XML parsing. Content length: 5521
[2025-12-22 03:09:38] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-22 03:09:38] [INFO] Processing 28 field mappings
[2025-12-22 03:09:38] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-22 03:09:38] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-22 03:09:38] [INFO]   -> Found value: PCFD
EMS
RESC
[2025-12-22 03:09:38] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2025-12-22 03:09:38] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 03:09:38] [INFO] Found 3 elements for 'ReportNumber', concatenating 1 non-empty values
[2025-12-22 03:09:38] [INFO]   -> Found value: 2025003132
[2025-12-22 03:09:38] [INFO]   -> Set field 'incidentInternalId' = "2025003132"
[2025-12-22 03:09:38] [INFO]   -> Set field 'dispatchRunNumber' = "2025003132"
[2025-12-22 03:09:38] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-22 03:09:38] [INFO]   -> Found value: FALL VICTIM
[2025-12-22 03:09:38] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2025-12-22 03:09:38] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-22 03:09:38] [INFO]   -> Found value: 130
[2025-12-22 03:09:38] [INFO]   -> Set field 'incidentLocationStreetNumber' = 130
[2025-12-22 03:09:38] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-22 03:09:38] [INFO]   -> Found value: TN
[2025-12-22 03:09:38] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 03:09:38] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-22 03:09:38] [INFO]   -> Found value: 38501
[2025-12-22 03:09:38] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2025-12-22 03:09:38] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-22 03:09:38] [INFO]   -> No value found (null or empty)
[2025-12-22 03:09:38] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-22 03:09:38] [INFO]   -> No value found (null or empty)
[2025-12-22 03:09:38] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-22 03:09:38] [INFO]   -> Found value: 36.17459
[2025-12-22 03:09:38] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.17459000000000202135197469033300876617431640625
[2025-12-22 03:09:38] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-22 03:09:38] [INFO]   -> Found value: -85.57116
[2025-12-22 03:09:38] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5711600000000061072569224052131175994873046875
[2025-12-22 03:09:38] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-22 03:09:38] [INFO]   -> Found value: 2025-12-21 21:08:58
[2025-12-22 03:09:38] [INFO]   -> Set field 'alarm' = "2025-12-21 21:08:58"
[2025-12-22 03:09:38] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-22 03:09:38] [INFO]   -> Found value: 2025-12-21 21:09:27
[2025-12-22 03:09:38] [INFO]   -> Set field 'dispatched' = "2025-12-21 21:09:27"
[2025-12-22 03:09:38] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-22 03:09:38] [INFO]   -> No value found (null or empty)
[2025-12-22 03:09:38] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-22 03:09:38] [INFO]   -> No value found (null or empty)
[2025-12-22 03:09:38] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-22 03:09:38] [INFO]   -> No value found (null or empty)
[2025-12-22 03:09:38] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-22 03:09:38] [INFO]   -> Found value: TARA DR/TARA DR
[2025-12-22 03:09:38] [INFO]   -> Set field 'incidentLocationCross' = "TARA DR\/TARA DR"
[2025-12-22 03:09:38] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-22 03:09:38] [INFO]   -> Found value: PCFR
[2025-12-22 03:09:38] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-22 03:09:38] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-22 03:09:38] [INFO]   -> Found value: 2025-12-21 21:09:27
[2025-12-22 03:09:38] [INFO]   -> Set field 'timedispatch' = "2025-12-21 21:09:27"
[2025-12-22 03:09:38] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-22 03:09:38] [INFO]   -> No value found (null or empty)
[2025-12-22 03:09:38] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-22 03:09:38] [INFO]   -> No value found (null or empty)
[2025-12-22 03:09:38] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-22 03:09:38] [INFO]   -> No value found (null or empty)
[2025-12-22 03:09:38] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-22 03:09:38] [INFO]   -> No value found (null or empty)
[2025-12-22 03:09:38] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-22 03:09:38] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-22 03:09:38] [INFO]   -> Found value: 20250139950
20250139949
20250139951
[2025-12-22 03:09:38] [INFO]   -> Set field 'policeReportNumber' = "20250139950\n20250139949\n20250139951"
[2025-12-22 03:09:38] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-22 03:09:38] [INFO]   -> Found value: [EMS] HIT HEAD ON BOTTOM OF DOOR//HIT BETWEEN HER EYES  [12/21/25 21:09:22 KMORGAN2] [APCO INTELLICO...
[2025-12-22 03:09:38] [INFO]   -> Set field 'dispatchNotes' = "[EMS] HIT HEAD ON BOTTOM OF DOOR\/\/HIT BETWEEN HER EYES  [12\/21\/25 21:09:22 KMORGAN2] [APCO INTELLICOMM] Case ID: 1lDXOvi8nt Caller Phone: 2106336992 Caller Name: VERIZON Incident Location: 130 SOUTH DR Incident Location Detail: TARA DR\/TARA DR Nature: FALL VICTIM Incident #: 20250139949 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 21:08:59 PSUTIL01] Event spawned from FALL VICTIM.  [12\/21\/2025 21:08:58 KMORGAN2] FELL AND HIT HEAD BLEEDING  [12\/21\/25 21:08:53 KMORGAN2]]"
[2025-12-22 03:09:38] [INFO]   -> Set field 'cADLog' = "[EMS] HIT HEAD ON BOTTOM OF DOOR\/\/HIT BETWEEN HER EYES  [12\/21\/25 21:09:22 KMORGAN2] [APCO INTELLICOMM] Case ID: 1lDXOvi8nt Caller Phone: 2106336992 Caller Name: VERIZON Incident Location: 130 SOUTH DR Incident Location Detail: TARA DR\/TARA DR Nature: FALL VICTIM Incident #: 20250139949 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 21:08:59 PSUTIL01] Event spawned from FALL VICTIM.  [12\/21\/2025 21:08:58 KMORGAN2] FELL AND HIT HEAD BLEEDING  [12\/21\/25 21:08:53 KMORGAN2]]"
[2025-12-22 03:09:38] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-22 03:09:38] [INFO]   -> Found value: COOKEVILLE
[2025-12-22 03:09:38] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-22 03:09:38] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-22 03:09:38] [INFO]   -> Found value: SOUTH
[2025-12-22 03:09:38] [INFO]   -> Set field 'streetName' = "SOUTH"
[2025-12-22 03:09:38] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-22 03:09:38] [INFO]   -> Found value: DR
[2025-12-22 03:09:38] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 03:09:38] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-22 03:09:38] [INFO]   -> Found value: 130 SOUTH DR
[2025-12-22 03:09:38] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "130 SOUTH DR"
[2025-12-22 03:09:38] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-22 03:09:38] [INFO] Concatenating street name and type
[2025-12-22 03:09:38] [INFO]   -> Combined street name: SOUTH DR
[2025-12-22 03:09:38] [INFO] Built locationCoordinates from lat/lng: 36.17459,-85.57116
[2025-12-22 03:09:38] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2025003132","dispatchRunNumber":"2025003132","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":130,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.17459000000000202135197469033300876617431640625,"nERISIncidentLongitude":-85.5711600000000061072569224052131175994873046875,"alarm":"2025-12-21 21:08:58","dispatched":"2025-12-21 21:09:27","incidentLocationCross":"TARA DR\/TARA DR","cADVehicleID":"PCFR","timedispatch":"2025-12-21 21:09:27","policeReportNumber":"20250139950\n20250139949\n20250139951","dispatchNotes":"[EMS] HIT HEAD ON BOTTOM OF DOOR\/\/HIT BETWEEN HER EYES  [12\/21\/25 21:09:22 KMORGAN2] [APCO INTELLICOMM] Case ID: 1lDXOvi8nt Caller Phone: 2106336992 Caller Name: VERIZON Incident Location: 130 SOUTH DR Incident Location Detail: TARA DR\/TARA DR Nature: FALL VICTIM Incident #: 20250139949 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 21:08:59 PSUTIL01] Event spawned from FALL VICTIM.  [12\/21\/2025 21:08:58 KMORGAN2] FELL AND HIT HEAD BLEEDING  [12\/21\/25 21:08:53 KMORGAN2]]","cADLog":"[EMS] HIT HEAD ON BOTTOM OF DOOR\/\/HIT BETWEEN HER EYES  [12\/21\/25 21:09:22 KMORGAN2] [APCO INTELLICOMM] Case ID: 1lDXOvi8nt Caller Phone: 2106336992 Caller Name: VERIZON Incident Location: 130 SOUTH DR Incident Location Detail: TARA DR\/TARA DR Nature: FALL VICTIM Incident #: 20250139949 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 21:08:59 PSUTIL01] Event spawned from FALL VICTIM.  [12\/21\/2025 21:08:58 KMORGAN2] FELL AND HIT HEAD BLEEDING  [12\/21\/25 21:08:53 KMORGAN2]]","incidentLocationCity":"COOKEVILLE","streetName":"SOUTH DR","incidentAddressTextVersionStreet":"130 SOUTH DR","locationCoordinates":"36.17459,-85.57116"}
[2025-12-22 03:09:38] [INFO] Number of extracted fields: 21
[2025-12-22 03:09:38] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-22 03:09:38] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Assigned Agencies count = 4
[2025-12-22 03:09:38] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2025-12-22 03:09:38] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (position 1)
[2025-12-22 03:09:38] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department for AgencyCode 'PCFD'
[2025-12-22 03:09:38] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on AgencyCode 'PCFD'
[2025-12-22 03:09:38] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["EMS","RESC"]
[2025-12-22 03:09: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"]
[2025-12-22 03:09:38] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-22 03:09:38] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-22 03:09:38] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2025-12-22 03:09:41] [INFO] Created new Dispatches record with ID: 6948b672c482a8f22
[2025-12-22 03:09:41] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139950_20251222_030937.XML
[2025-12-22 03:09:41] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139950_20251222_030937.XML
[2025-12-22 03:12:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20250139953_20251222_031227.XML
[2025-12-22 03:12:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20250139953_20251222_031227.XML for user: 68f1466aed072ad4a
[2025-12-22 03:12:27] [INFO] File size: 5071 bytes
[2025-12-22 03:12:28] [INFO] Created FTPFiles record with ID: 6948b71c0a317a5ae
[2025-12-22 03:12:28] [INFO] About to extract fields from XML. File size: 5071 bytes
[2025-12-22 03:12:28] [INFO] Number of mappings: 28
[2025-12-22 03:12:28] [INFO] Starting XML parsing. Content length: 5071
[2025-12-22 03:12:28] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-22 03:12:28] [INFO] Processing 28 field mappings
[2025-12-22 03:12:28] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-22 03:12:28] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2025-12-22 03:12:28] [INFO]   -> Found value: AFD
EMS
[2025-12-22 03:12:28] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS"
[2025-12-22 03:12:28] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 03:12:28] [INFO] Found 2 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-22 03:12:28] [INFO]   -> Found value: 2025000596
2025019865
[2025-12-22 03:12:28] [INFO]   -> Set field 'incidentInternalId' = "2025000596\n2025019865"
[2025-12-22 03:12:28] [INFO]   -> Set field 'dispatchRunNumber' = "2025000596\n2025019865"
[2025-12-22 03:12:28] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-22 03:12:28] [INFO]   -> Found value: SICK PERSON
[2025-12-22 03:12:28] [INFO]   -> Set field 'incidentTypeValue1' = "SICK PERSON"
[2025-12-22 03:12:28] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-22 03:12:28] [INFO]   -> Found value: 130
[2025-12-22 03:12:28] [INFO]   -> Set field 'incidentLocationStreetNumber' = 130
[2025-12-22 03:12:28] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-22 03:12:28] [INFO]   -> Found value: TN
[2025-12-22 03:12:28] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 03:12:28] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-22 03:12:28] [INFO]   -> Found value: 38506
[2025-12-22 03:12:28] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-22 03:12:28] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-22 03:12:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:12:28] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-22 03:12:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:12:28] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-22 03:12:28] [INFO]   -> Found value: 36.19476
[2025-12-22 03:12:28] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.194760000000002264641807414591312408447265625
[2025-12-22 03:12:28] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-22 03:12:28] [INFO]   -> Found value: -85.44442
[2025-12-22 03:12:28] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4444199999999938199835014529526233673095703125
[2025-12-22 03:12:28] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-22 03:12:28] [INFO]   -> Found value: 2025-12-21 21:11:29
[2025-12-22 03:12:28] [INFO]   -> Set field 'alarm' = "2025-12-21 21:11:29"
[2025-12-22 03:12:28] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-22 03:12:28] [INFO]   -> Found value: 2025-12-21 21:12:21
[2025-12-22 03:12:28] [INFO]   -> Set field 'dispatched' = "2025-12-21 21:12:21"
[2025-12-22 03:12:28] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-22 03:12:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:12:28] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-22 03:12:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:12:28] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-22 03:12:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:12:28] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-22 03:12:28] [INFO]   -> Found value: SWIFT ST/E WALL ST
[2025-12-22 03:12:28] [INFO]   -> Set field 'incidentLocationCross' = "SWIFT ST\/E WALL ST"
[2025-12-22 03:12:28] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-22 03:12:28] [INFO]   -> Found value: AFR
[2025-12-22 03:12:28] [INFO]   -> Set field 'cADVehicleID' = "AFR"
[2025-12-22 03:12:28] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-22 03:12:28] [INFO]   -> Found value: 2025-12-21 21:12:21
[2025-12-22 03:12:28] [INFO]   -> Set field 'timedispatch' = "2025-12-21 21:12:21"
[2025-12-22 03:12:28] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-22 03:12:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:12:28] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-22 03:12:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:12:28] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-22 03:12:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:12:28] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-22 03:12:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:12:28] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-22 03:12:28] [INFO] Found 2 elements for 'CadInciNumber', concatenating 2 non-empty values
[2025-12-22 03:12:28] [INFO]   -> Found value: 20250139953
20250139952
[2025-12-22 03:12:28] [INFO]   -> Set field 'policeReportNumber' = "20250139953\n20250139952"
[2025-12-22 03:12:28] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-22 03:12:28] [INFO]   -> Found value: [EMS] CURRENTLY O BACTRIM  [12/21/25 21:11:45 KMORGAN2] Event spawned from SICK PERSON.  [12/21/2025...
[2025-12-22 03:12:28] [INFO]   -> Set field 'dispatchNotes' = "[EMS] CURRENTLY O BACTRIM  [12\/21\/25 21:11:45 KMORGAN2] Event spawned from SICK PERSON.  [12\/21\/2025 21:11:29 KMORGAN2] 84 YOM O2 87 HX OF STROKE\/\/DIABETIC SHAKING HAS A UTI  [12\/21\/25 21:11:09 KMORGAN2]]"
[2025-12-22 03:12:28] [INFO]   -> Set field 'cADLog' = "[EMS] CURRENTLY O BACTRIM  [12\/21\/25 21:11:45 KMORGAN2] Event spawned from SICK PERSON.  [12\/21\/2025 21:11:29 KMORGAN2] 84 YOM O2 87 HX OF STROKE\/\/DIABETIC SHAKING HAS A UTI  [12\/21\/25 21:11:09 KMORGAN2]]"
[2025-12-22 03:12:28] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-22 03:12:28] [INFO]   -> Found value: ALGOOD
[2025-12-22 03:12:28] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2025-12-22 03:12:28] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-22 03:12:28] [INFO]   -> Found value: MARKWATER
[2025-12-22 03:12:28] [INFO]   -> Set field 'streetName' = "MARKWATER"
[2025-12-22 03:12:28] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-22 03:12:28] [INFO]   -> Found value: ST
[2025-12-22 03:12:28] [INFO]   -> Set field 'streetType' = "ST"
[2025-12-22 03:12:28] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-22 03:12:28] [INFO]   -> Found value: 130 MARKWATER ST
[2025-12-22 03:12:28] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "130 MARKWATER ST"
[2025-12-22 03:12:28] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-22 03:12:28] [INFO] Concatenating street name and type
[2025-12-22 03:12:28] [INFO]   -> Combined street name: MARKWATER ST
[2025-12-22 03:12:28] [INFO] Built locationCoordinates from lat/lng: 36.19476,-85.44442
[2025-12-22 03:12:28] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS","incidentInternalId":"2025000596\n2025019865","dispatchRunNumber":"2025000596\n2025019865","incidentTypeValue1":"SICK PERSON","incidentLocationStreetNumber":130,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.194760000000002264641807414591312408447265625,"nERISIncidentLongitude":-85.4444199999999938199835014529526233673095703125,"alarm":"2025-12-21 21:11:29","dispatched":"2025-12-21 21:12:21","incidentLocationCross":"SWIFT ST\/E WALL ST","cADVehicleID":"AFR","timedispatch":"2025-12-21 21:12:21","policeReportNumber":"20250139953\n20250139952","dispatchNotes":"[EMS] CURRENTLY O BACTRIM  [12\/21\/25 21:11:45 KMORGAN2] Event spawned from SICK PERSON.  [12\/21\/2025 21:11:29 KMORGAN2] 84 YOM O2 87 HX OF STROKE\/\/DIABETIC SHAKING HAS A UTI  [12\/21\/25 21:11:09 KMORGAN2]]","cADLog":"[EMS] CURRENTLY O BACTRIM  [12\/21\/25 21:11:45 KMORGAN2] Event spawned from SICK PERSON.  [12\/21\/2025 21:11:29 KMORGAN2] 84 YOM O2 87 HX OF STROKE\/\/DIABETIC SHAKING HAS A UTI  [12\/21\/25 21:11:09 KMORGAN2]]","incidentLocationCity":"ALGOOD","streetName":"MARKWATER ST","incidentAddressTextVersionStreet":"130 MARKWATER ST","locationCoordinates":"36.19476,-85.44442"}
[2025-12-22 03:12:28] [INFO] Number of extracted fields: 21
[2025-12-22 03:12:28] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS'
[2025-12-22 03:12:28] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS', Parsed IDs = ["AFD","EMS"], Assigned Agencies count = 4
[2025-12-22 03:12:28] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS"]
[2025-12-22 03:12:28] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (position 1)
[2025-12-22 03:12:28] [INFO] Found SAASClient match: ID = 68910627445d6e167, Name = Algood Fire Department for AgencyCode 'AFD'
[2025-12-22 03:12:28] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) based on AgencyCode 'AFD'
[2025-12-22 03:12:28] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["EMS"]
[2025-12-22 03:12:28] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2025-12-22 03:12:28] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"]
[2025-12-22 03:12:28] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2025-12-22 03:12:28] [INFO] Normalized cADNumber to first value: 2025000596
[2025-12-22 03:12:28] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"SICK PERSON","saasclientId":"68910627445d6e167","name":"SICK PERSON"}
[2025-12-22 03:12:28] [INFO] Created new IncidentTypeMapping with ID: 6948b71cb054f7d6c
[2025-12-22 03:12:31] [INFO] Created new Dispatches record with ID: 6948b71d0606b7d88
[2025-12-22 03:12:31] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20250139953_20251222_031227.XML
[2025-12-22 03:12:31] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20250139953_20251222_031227.XML
[2025-12-22 03:49:17] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20250139963_20251222_034917.XML
[2025-12-22 03:49:17] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20250139963_20251222_034917.XML for user: 68f1466aed072ad4a
[2025-12-22 03:49:17] [INFO] File size: 6457 bytes
[2025-12-22 03:49:18] [INFO] Created FTPFiles record with ID: 6948bfbe32c9ce1d3
[2025-12-22 03:49:18] [INFO] About to extract fields from XML. File size: 6457 bytes
[2025-12-22 03:49:18] [INFO] Number of mappings: 28
[2025-12-22 03:49:18] [INFO] Starting XML parsing. Content length: 6457
[2025-12-22 03:49:18] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-22 03:49:18] [INFO] Processing 28 field mappings
[2025-12-22 03:49:18] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-22 03:49:18] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2025-12-22 03:49:18] [INFO]   -> Found value: MFD
MPD
EMS
PCFD
RESC
[2025-12-22 03:49:18] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nMPD\nEMS\nPCFD\nRESC"
[2025-12-22 03:49:18] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 03:49:18] [INFO] Found 5 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-22 03:49:18] [INFO]   -> Found value: 2025000378
2025019867
[2025-12-22 03:49:18] [INFO]   -> Set field 'incidentInternalId' = "2025000378\n2025019867"
[2025-12-22 03:49:18] [INFO]   -> Set field 'dispatchRunNumber' = "2025000378\n2025019867"
[2025-12-22 03:49:18] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-22 03:49:18] [INFO]   -> Found value: MEDICAL CALL
[2025-12-22 03:49:18] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL CALL"
[2025-12-22 03:49:18] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-22 03:49:18] [INFO]   -> Found value: 209
[2025-12-22 03:49:18] [INFO]   -> Set field 'incidentLocationStreetNumber' = 209
[2025-12-22 03:49:18] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-22 03:49:18] [INFO]   -> Found value: TN
[2025-12-22 03:49:18] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 03:49:18] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-22 03:49:18] [INFO]   -> Found value: 38574
[2025-12-22 03:49:18] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2025-12-22 03:49:18] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-22 03:49:18] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:18] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-22 03:49:18] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:18] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-22 03:49:18] [INFO]   -> Found value: 36.14829
[2025-12-22 03:49:18] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.148290000000002919477992691099643707275390625
[2025-12-22 03:49:18] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-22 03:49:18] [INFO]   -> Found value: -85.27045
[2025-12-22 03:49:18] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2704499999999967485564411617815494537353515625
[2025-12-22 03:49:18] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-22 03:49:18] [INFO]   -> Found value: 2025-12-21 21:48:16
[2025-12-22 03:49:18] [INFO]   -> Set field 'alarm' = "2025-12-21 21:48:16"
[2025-12-22 03:49:18] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-22 03:49:18] [INFO]   -> Found value: 2025-12-21 21:49:15
[2025-12-22 03:49:18] [INFO]   -> Set field 'dispatched' = "2025-12-21 21:49:15"
[2025-12-22 03:49:18] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-22 03:49:18] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:18] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-22 03:49:18] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:18] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-22 03:49:18] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:18] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-22 03:49:18] [INFO]   -> Found value: /S WALNUT ST
[2025-12-22 03:49:18] [INFO]   -> Set field 'incidentLocationCross' = "\/S WALNUT ST"
[2025-12-22 03:49:18] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-22 03:49:18] [INFO]   -> Found value: MFR
[2025-12-22 03:49:18] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2025-12-22 03:49:18] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-22 03:49:18] [INFO]   -> Found value: 2025-12-21 21:49:15
[2025-12-22 03:49:18] [INFO]   -> Set field 'timedispatch' = "2025-12-21 21:49:15"
[2025-12-22 03:49:18] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-22 03:49:18] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:18] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-22 03:49:18] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:18] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-22 03:49:18] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:18] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-22 03:49:18] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:18] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-22 03:49:18] [INFO] Found 5 elements for 'CadInciNumber', concatenating 5 non-empty values
[2025-12-22 03:49:18] [INFO]   -> Found value: 20250139963
20250139961
20250139962
20250139964
20250139965
[2025-12-22 03:49:18] [INFO]   -> Set field 'policeReportNumber' = "20250139963\n20250139961\n20250139962\n20250139964\n20250139965"
[2025-12-22 03:49:18] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-22 03:49:18] [INFO]   -> Found value: [LAW] UDTS: {M106} SCENE SECURE  [12/21/25 21:49:11 ECLEMENS] Event spawned from EMS EMERGENCY CALL....
[2025-12-22 03:49:18] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: {M106} SCENE SECURE  [12\/21\/25 21:49:11 ECLEMENS] Event spawned from EMS EMERGENCY CALL.  [12\/21\/2025 21:48:16 DSWINK] [LAW] EMS ENTR 33 TRAFFIC FOR JUV INJ TO THE HEAD  [12\/21\/25 21:48:16 CHERNANDEZ] UDTS: CARD SEEN BY 911  [12\/21\/25 21:48:05 DSWINK] Event spawned from DOMESTIC.  [12\/21\/2025 21:47:52 CHERNANDEZ] CLR OVERTON CO  [12\/21\/25 21:47:39 ECLEMENS] BABY IS BLEEDING  [12\/21\/25 21:47:38 CHERNANDEZ] FEM IS SCREAMING  [12\/21\/25 21:47:24 CHERNANDEZ] {M103} CHECK OVERTON CO  [12\/21\/25 21:47:22 ECLEMENS] YELLING ABOUT THE KIDS  [12\/21\/25 21:47:18 CHERNANDEZ] VERBAL IN THE BACKGROUND  [12\/21\/25 21:47:06 CHERNANDEZ] 5YO AND 2YO FEM JUVS \/\/ WITH THE MOTHER IN THE LIVINGROOM  [12\/21\/25 21:46:51 CHERNANDEZ] TWO CHILDREN  [12\/21\/25 21:46:18 CHERNANDEZ] BOTH SUBJ ARE CLR LOCAL  [12\/21\/25 21:46:14 CHERNANDEZ] CALLER IS IN THE BATHROOM  [12\/21\/25 21:46:01 CHERNANDEZ] MARY PATTON  [12\/21\/25 21:45:33 CHERNANDEZ] GRANDSON - LOGAN STAMPS  [12\/21\/25 21:45:29 CHERNANDEZ] NO INJ  [12\/21\/25 21:45:20 CHERNANDEZ] NO WEAPONS  [12\/21\/25 21:45:19 CHERNANDEZ] VERBAL ONLY  [12\/21\/25 21:45:07 CHERNANDEZ] GRANDSON AND HIS GIRLF ARE IN TO IT  [12\/21\/25 21:44:56 CHERNANDEZ]]"
[2025-12-22 03:49:18] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: {M106} SCENE SECURE  [12\/21\/25 21:49:11 ECLEMENS] Event spawned from EMS EMERGENCY CALL.  [12\/21\/2025 21:48:16 DSWINK] [LAW] EMS ENTR 33 TRAFFIC FOR JUV INJ TO THE HEAD  [12\/21\/25 21:48:16 CHERNANDEZ] UDTS: CARD SEEN BY 911  [12\/21\/25 21:48:05 DSWINK] Event spawned from DOMESTIC.  [12\/21\/2025 21:47:52 CHERNANDEZ] CLR OVERTON CO  [12\/21\/25 21:47:39 ECLEMENS] BABY IS BLEEDING  [12\/21\/25 21:47:38 CHERNANDEZ] FEM IS SCREAMING  [12\/21\/25 21:47:24 CHERNANDEZ] {M103} CHECK OVERTON CO  [12\/21\/25 21:47:22 ECLEMENS] YELLING ABOUT THE KIDS  [12\/21\/25 21:47:18 CHERNANDEZ] VERBAL IN THE BACKGROUND  [12\/21\/25 21:47:06 CHERNANDEZ] 5YO AND 2YO FEM JUVS \/\/ WITH THE MOTHER IN THE LIVINGROOM  [12\/21\/25 21:46:51 CHERNANDEZ] TWO CHILDREN  [12\/21\/25 21:46:18 CHERNANDEZ] BOTH SUBJ ARE CLR LOCAL  [12\/21\/25 21:46:14 CHERNANDEZ] CALLER IS IN THE BATHROOM  [12\/21\/25 21:46:01 CHERNANDEZ] MARY PATTON  [12\/21\/25 21:45:33 CHERNANDEZ] GRANDSON - LOGAN STAMPS  [12\/21\/25 21:45:29 CHERNANDEZ] NO INJ  [12\/21\/25 21:45:20 CHERNANDEZ] NO WEAPONS  [12\/21\/25 21:45:19 CHERNANDEZ] VERBAL ONLY  [12\/21\/25 21:45:07 CHERNANDEZ] GRANDSON AND HIS GIRLF ARE IN TO IT  [12\/21\/25 21:44:56 CHERNANDEZ]]"
[2025-12-22 03:49:18] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-22 03:49:18] [INFO]   -> Found value: MONTEREY
[2025-12-22 03:49:18] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2025-12-22 03:49:18] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-22 03:49:18] [INFO]   -> Found value: ROBBINS
[2025-12-22 03:49:18] [INFO]   -> Set field 'streetName' = "ROBBINS"
[2025-12-22 03:49:18] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-22 03:49:18] [INFO]   -> Found value: LN
[2025-12-22 03:49:18] [INFO]   -> Set field 'streetType' = "LN"
[2025-12-22 03:49:18] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-22 03:49:18] [INFO]   -> Found value: 209 ROBBINS LN
[2025-12-22 03:49:18] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "209 ROBBINS LN"
[2025-12-22 03:49:18] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-22 03:49:18] [INFO] Concatenating street name and type
[2025-12-22 03:49:18] [INFO]   -> Combined street name: ROBBINS LN
[2025-12-22 03:49:18] [INFO] Built locationCoordinates from lat/lng: 36.14829,-85.27045
[2025-12-22 03:49:18] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nMPD\nEMS\nPCFD\nRESC","incidentInternalId":"2025000378\n2025019867","dispatchRunNumber":"2025000378\n2025019867","incidentTypeValue1":"MEDICAL CALL","incidentLocationStreetNumber":209,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.148290000000002919477992691099643707275390625,"nERISIncidentLongitude":-85.2704499999999967485564411617815494537353515625,"alarm":"2025-12-21 21:48:16","dispatched":"2025-12-21 21:49:15","incidentLocationCross":"\/S WALNUT ST","cADVehicleID":"MFR","timedispatch":"2025-12-21 21:49:15","policeReportNumber":"20250139963\n20250139961\n20250139962\n20250139964\n20250139965","dispatchNotes":"[LAW] UDTS: {M106} SCENE SECURE  [12\/21\/25 21:49:11 ECLEMENS] Event spawned from EMS EMERGENCY CALL.  [12\/21\/2025 21:48:16 DSWINK] [LAW] EMS ENTR 33 TRAFFIC FOR JUV INJ TO THE HEAD  [12\/21\/25 21:48:16 CHERNANDEZ] UDTS: CARD SEEN BY 911  [12\/21\/25 21:48:05 DSWINK] Event spawned from DOMESTIC.  [12\/21\/2025 21:47:52 CHERNANDEZ] CLR OVERTON CO  [12\/21\/25 21:47:39 ECLEMENS] BABY IS BLEEDING  [12\/21\/25 21:47:38 CHERNANDEZ] FEM IS SCREAMING  [12\/21\/25 21:47:24 CHERNANDEZ] {M103} CHECK OVERTON CO  [12\/21\/25 21:47:22 ECLEMENS] YELLING ABOUT THE KIDS  [12\/21\/25 21:47:18 CHERNANDEZ] VERBAL IN THE BACKGROUND  [12\/21\/25 21:47:06 CHERNANDEZ] 5YO AND 2YO FEM JUVS \/\/ WITH THE MOTHER IN THE LIVINGROOM  [12\/21\/25 21:46:51 CHERNANDEZ] TWO CHILDREN  [12\/21\/25 21:46:18 CHERNANDEZ] BOTH SUBJ ARE CLR LOCAL  [12\/21\/25 21:46:14 CHERNANDEZ] CALLER IS IN THE BATHROOM  [12\/21\/25 21:46:01 CHERNANDEZ] MARY PATTON  [12\/21\/25 21:45:33 CHERNANDEZ] GRANDSON - LOGAN STAMPS  [12\/21\/25 21:45:29 CHERNANDEZ] NO INJ  [12\/21\/25 21:45:20 CHERNANDEZ] NO WEAPONS  [12\/21\/25 21:45:19 CHERNANDEZ] VERBAL ONLY  [12\/21\/25 21:45:07 CHERNANDEZ] GRANDSON AND HIS GIRLF ARE IN TO IT  [12\/21\/25 21:44:56 CHERNANDEZ]]","cADLog":"[LAW] UDTS: {M106} SCENE SECURE  [12\/21\/25 21:49:11 ECLEMENS] Event spawned from EMS EMERGENCY CALL.  [12\/21\/2025 21:48:16 DSWINK] [LAW] EMS ENTR 33 TRAFFIC FOR JUV INJ TO THE HEAD  [12\/21\/25 21:48:16 CHERNANDEZ] UDTS: CARD SEEN BY 911  [12\/21\/25 21:48:05 DSWINK] Event spawned from DOMESTIC.  [12\/21\/2025 21:47:52 CHERNANDEZ] CLR OVERTON CO  [12\/21\/25 21:47:39 ECLEMENS] BABY IS BLEEDING  [12\/21\/25 21:47:38 CHERNANDEZ] FEM IS SCREAMING  [12\/21\/25 21:47:24 CHERNANDEZ] {M103} CHECK OVERTON CO  [12\/21\/25 21:47:22 ECLEMENS] YELLING ABOUT THE KIDS  [12\/21\/25 21:47:18 CHERNANDEZ] VERBAL IN THE BACKGROUND  [12\/21\/25 21:47:06 CHERNANDEZ] 5YO AND 2YO FEM JUVS \/\/ WITH THE MOTHER IN THE LIVINGROOM  [12\/21\/25 21:46:51 CHERNANDEZ] TWO CHILDREN  [12\/21\/25 21:46:18 CHERNANDEZ] BOTH SUBJ ARE CLR LOCAL  [12\/21\/25 21:46:14 CHERNANDEZ] CALLER IS IN THE BATHROOM  [12\/21\/25 21:46:01 CHERNANDEZ] MARY PATTON  [12\/21\/25 21:45:33 CHERNANDEZ] GRANDSON - LOGAN STAMPS  [12\/21\/25 21:45:29 CHERNANDEZ] NO INJ  [12\/21\/25 21:45:20 CHERNANDEZ] NO WEAPONS  [12\/21\/25 21:45:19 CHERNANDEZ] VERBAL ONLY  [12\/21\/25 21:45:07 CHERNANDEZ] GRANDSON AND HIS GIRLF ARE IN TO IT  [12\/21\/25 21:44:56 CHERNANDEZ]]","incidentLocationCity":"MONTEREY","streetName":"ROBBINS LN","incidentAddressTextVersionStreet":"209 ROBBINS LN","locationCoordinates":"36.14829,-85.27045"}
[2025-12-22 03:49:18] [INFO] Number of extracted fields: 21
[2025-12-22 03:49:18] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
MPD
EMS
PCFD
RESC'
[2025-12-22 03:49:18] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
MPD
EMS
PCFD
RESC', Parsed IDs = ["MFD","MPD","EMS","PCFD","RESC"], Assigned Agencies count = 4
[2025-12-22 03:49:18] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","MPD","EMS","PCFD","RESC"]
[2025-12-22 03:49:18] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (position 1)
[2025-12-22 03:49:18] [INFO] Found SAASClient match: ID = 68e67aaba2bb4565e, Name = Monterey Fire Department for AgencyCode 'MFD'
[2025-12-22 03:49:18] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) based on AgencyCode 'MFD'
[2025-12-22 03:49:18] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["MPD","EMS","PCFD","RESC"]
[2025-12-22 03:49:18] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2025-12-22 03:49:18] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"]
[2025-12-22 03:49:18] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2025-12-22 03:49:18] [INFO] Normalized cADNumber to first value: 2025000378
[2025-12-22 03:49:18] [INFO] Found existing IncidentTypeMapping with ID: 694495243a91eaccb
[2025-12-22 03:49:20] [INFO] Created new Dispatches record with ID: 6948bfbf09b180eed
[2025-12-22 03:49:20] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20250139963_20251222_034917.XML
[2025-12-22 03:49:20] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20250139963_20251222_034917.XML
[2025-12-22 03:49:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139964_20251222_034927.XML
[2025-12-22 03:49:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139964_20251222_034927.XML for user: 68f1466aed072ad4a
[2025-12-22 03:49:27] [INFO] File size: 6494 bytes
[2025-12-22 03:49:28] [INFO] Created FTPFiles record with ID: 6948bfc80fc4286c0
[2025-12-22 03:49:28] [INFO] About to extract fields from XML. File size: 6494 bytes
[2025-12-22 03:49:28] [INFO] Number of mappings: 28
[2025-12-22 03:49:28] [INFO] Starting XML parsing. Content length: 6494
[2025-12-22 03:49:28] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-22 03:49:28] [INFO] Processing 28 field mappings
[2025-12-22 03:49:28] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-22 03:49:28] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2025-12-22 03:49:28] [INFO]   -> Found value: PCFD
MPD
EMS
MFD
RESC
[2025-12-22 03:49:28] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nMPD\nEMS\nMFD\nRESC"
[2025-12-22 03:49:28] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 03:49:28] [INFO] Found 5 elements for 'ReportNumber', concatenating 3 non-empty values
[2025-12-22 03:49:28] [INFO]   -> Found value: 2025003133
2025019867
2025000378
[2025-12-22 03:49:28] [INFO]   -> Set field 'incidentInternalId' = "2025003133\n2025019867\n2025000378"
[2025-12-22 03:49:28] [INFO]   -> Set field 'dispatchRunNumber' = "2025003133\n2025019867\n2025000378"
[2025-12-22 03:49:28] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-22 03:49:28] [INFO]   -> Found value: MEDICAL CALL
[2025-12-22 03:49:28] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL CALL"
[2025-12-22 03:49:28] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-22 03:49:28] [INFO]   -> Found value: 209
[2025-12-22 03:49:28] [INFO]   -> Set field 'incidentLocationStreetNumber' = 209
[2025-12-22 03:49:28] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-22 03:49:28] [INFO]   -> Found value: TN
[2025-12-22 03:49:28] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 03:49:28] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-22 03:49:28] [INFO]   -> Found value: 38574
[2025-12-22 03:49:28] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2025-12-22 03:49:28] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-22 03:49:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:28] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-22 03:49:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:28] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-22 03:49:28] [INFO]   -> Found value: 36.14829
[2025-12-22 03:49:28] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.148290000000002919477992691099643707275390625
[2025-12-22 03:49:28] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-22 03:49:28] [INFO]   -> Found value: -85.27045
[2025-12-22 03:49:28] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2704499999999967485564411617815494537353515625
[2025-12-22 03:49:28] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-22 03:49:28] [INFO]   -> Found value: 2025-12-21 21:48:26
[2025-12-22 03:49:28] [INFO]   -> Set field 'alarm' = "2025-12-21 21:48:26"
[2025-12-22 03:49:28] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-22 03:49:28] [INFO]   -> Found value: 2025-12-21 21:49:17
[2025-12-22 03:49:28] [INFO]   -> Set field 'dispatched' = "2025-12-21 21:49:17"
[2025-12-22 03:49:28] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-22 03:49:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:28] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-22 03:49:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:28] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-22 03:49:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:28] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-22 03:49:28] [INFO]   -> Found value: /S WALNUT ST
[2025-12-22 03:49:28] [INFO]   -> Set field 'incidentLocationCross' = "\/S WALNUT ST"
[2025-12-22 03:49:28] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-22 03:49:28] [INFO]   -> Found value: PCFR
[2025-12-22 03:49:28] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-22 03:49:28] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-22 03:49:28] [INFO]   -> Found value: 2025-12-21 21:49:17
[2025-12-22 03:49:28] [INFO]   -> Set field 'timedispatch' = "2025-12-21 21:49:17"
[2025-12-22 03:49:28] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-22 03:49:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:28] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-22 03:49:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:28] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-22 03:49:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:28] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-22 03:49:28] [INFO]   -> No value found (null or empty)
[2025-12-22 03:49:28] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-22 03:49:28] [INFO] Found 5 elements for 'CadInciNumber', concatenating 5 non-empty values
[2025-12-22 03:49:28] [INFO]   -> Found value: 20250139964
20250139961
20250139962
20250139963
20250139965
[2025-12-22 03:49:28] [INFO]   -> Set field 'policeReportNumber' = "20250139964\n20250139961\n20250139962\n20250139963\n20250139965"
[2025-12-22 03:49:28] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-22 03:49:28] [INFO]   -> Found value: [LAW] UDTS: {M106} SCENE SECURE  [12/21/25 21:49:11 ECLEMENS] Event spawned from EMS EMERGENCY CALL....
[2025-12-22 03:49:28] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: {M106} SCENE SECURE  [12\/21\/25 21:49:11 ECLEMENS] Event spawned from EMS EMERGENCY CALL.  [12\/21\/2025 21:48:26 DSWINK] [LAW] EMS ENTR 33 TRAFFIC FOR JUV INJ TO THE HEAD  [12\/21\/25 21:48:16 CHERNANDEZ] UDTS: CARD SEEN BY 911  [12\/21\/25 21:48:05 DSWINK] Event spawned from DOMESTIC.  [12\/21\/2025 21:47:52 CHERNANDEZ] CLR OVERTON CO  [12\/21\/25 21:47:39 ECLEMENS] BABY IS BLEEDING  [12\/21\/25 21:47:38 CHERNANDEZ] FEM IS SCREAMING  [12\/21\/25 21:47:24 CHERNANDEZ] {M103} CHECK OVERTON CO  [12\/21\/25 21:47:22 ECLEMENS] YELLING ABOUT THE KIDS  [12\/21\/25 21:47:18 CHERNANDEZ] VERBAL IN THE BACKGROUND  [12\/21\/25 21:47:06 CHERNANDEZ] 5YO AND 2YO FEM JUVS \/\/ WITH THE MOTHER IN THE LIVINGROOM  [12\/21\/25 21:46:51 CHERNANDEZ] TWO CHILDREN  [12\/21\/25 21:46:18 CHERNANDEZ] BOTH SUBJ ARE CLR LOCAL  [12\/21\/25 21:46:14 CHERNANDEZ] CALLER IS IN THE BATHROOM  [12\/21\/25 21:46:01 CHERNANDEZ] MARY PATTON  [12\/21\/25 21:45:33 CHERNANDEZ] GRANDSON - LOGAN STAMPS  [12\/21\/25 21:45:29 CHERNANDEZ] NO INJ  [12\/21\/25 21:45:20 CHERNANDEZ] NO WEAPONS  [12\/21\/25 21:45:19 CHERNANDEZ] VERBAL ONLY  [12\/21\/25 21:45:07 CHERNANDEZ] GRANDSON AND HIS GIRLF ARE IN TO IT  [12\/21\/25 21:44:56 CHERNANDEZ]]"
[2025-12-22 03:49:28] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: {M106} SCENE SECURE  [12\/21\/25 21:49:11 ECLEMENS] Event spawned from EMS EMERGENCY CALL.  [12\/21\/2025 21:48:26 DSWINK] [LAW] EMS ENTR 33 TRAFFIC FOR JUV INJ TO THE HEAD  [12\/21\/25 21:48:16 CHERNANDEZ] UDTS: CARD SEEN BY 911  [12\/21\/25 21:48:05 DSWINK] Event spawned from DOMESTIC.  [12\/21\/2025 21:47:52 CHERNANDEZ] CLR OVERTON CO  [12\/21\/25 21:47:39 ECLEMENS] BABY IS BLEEDING  [12\/21\/25 21:47:38 CHERNANDEZ] FEM IS SCREAMING  [12\/21\/25 21:47:24 CHERNANDEZ] {M103} CHECK OVERTON CO  [12\/21\/25 21:47:22 ECLEMENS] YELLING ABOUT THE KIDS  [12\/21\/25 21:47:18 CHERNANDEZ] VERBAL IN THE BACKGROUND  [12\/21\/25 21:47:06 CHERNANDEZ] 5YO AND 2YO FEM JUVS \/\/ WITH THE MOTHER IN THE LIVINGROOM  [12\/21\/25 21:46:51 CHERNANDEZ] TWO CHILDREN  [12\/21\/25 21:46:18 CHERNANDEZ] BOTH SUBJ ARE CLR LOCAL  [12\/21\/25 21:46:14 CHERNANDEZ] CALLER IS IN THE BATHROOM  [12\/21\/25 21:46:01 CHERNANDEZ] MARY PATTON  [12\/21\/25 21:45:33 CHERNANDEZ] GRANDSON - LOGAN STAMPS  [12\/21\/25 21:45:29 CHERNANDEZ] NO INJ  [12\/21\/25 21:45:20 CHERNANDEZ] NO WEAPONS  [12\/21\/25 21:45:19 CHERNANDEZ] VERBAL ONLY  [12\/21\/25 21:45:07 CHERNANDEZ] GRANDSON AND HIS GIRLF ARE IN TO IT  [12\/21\/25 21:44:56 CHERNANDEZ]]"
[2025-12-22 03:49:28] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-22 03:49:28] [INFO]   -> Found value: MONTEREY
[2025-12-22 03:49:28] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2025-12-22 03:49:28] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-22 03:49:28] [INFO]   -> Found value: ROBBINS
[2025-12-22 03:49:28] [INFO]   -> Set field 'streetName' = "ROBBINS"
[2025-12-22 03:49:28] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-22 03:49:28] [INFO]   -> Found value: LN
[2025-12-22 03:49:28] [INFO]   -> Set field 'streetType' = "LN"
[2025-12-22 03:49:28] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-22 03:49:28] [INFO]   -> Found value: 209 ROBBINS LN
[2025-12-22 03:49:28] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "209 ROBBINS LN"
[2025-12-22 03:49:28] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-22 03:49:28] [INFO] Concatenating street name and type
[2025-12-22 03:49:28] [INFO]   -> Combined street name: ROBBINS LN
[2025-12-22 03:49:28] [INFO] Built locationCoordinates from lat/lng: 36.14829,-85.27045
[2025-12-22 03:49:28] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nMPD\nEMS\nMFD\nRESC","incidentInternalId":"2025003133\n2025019867\n2025000378","dispatchRunNumber":"2025003133\n2025019867\n2025000378","incidentTypeValue1":"MEDICAL CALL","incidentLocationStreetNumber":209,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.148290000000002919477992691099643707275390625,"nERISIncidentLongitude":-85.2704499999999967485564411617815494537353515625,"alarm":"2025-12-21 21:48:26","dispatched":"2025-12-21 21:49:17","incidentLocationCross":"\/S WALNUT ST","cADVehicleID":"PCFR","timedispatch":"2025-12-21 21:49:17","policeReportNumber":"20250139964\n20250139961\n20250139962\n20250139963\n20250139965","dispatchNotes":"[LAW] UDTS: {M106} SCENE SECURE  [12\/21\/25 21:49:11 ECLEMENS] Event spawned from EMS EMERGENCY CALL.  [12\/21\/2025 21:48:26 DSWINK] [LAW] EMS ENTR 33 TRAFFIC FOR JUV INJ TO THE HEAD  [12\/21\/25 21:48:16 CHERNANDEZ] UDTS: CARD SEEN BY 911  [12\/21\/25 21:48:05 DSWINK] Event spawned from DOMESTIC.  [12\/21\/2025 21:47:52 CHERNANDEZ] CLR OVERTON CO  [12\/21\/25 21:47:39 ECLEMENS] BABY IS BLEEDING  [12\/21\/25 21:47:38 CHERNANDEZ] FEM IS SCREAMING  [12\/21\/25 21:47:24 CHERNANDEZ] {M103} CHECK OVERTON CO  [12\/21\/25 21:47:22 ECLEMENS] YELLING ABOUT THE KIDS  [12\/21\/25 21:47:18 CHERNANDEZ] VERBAL IN THE BACKGROUND  [12\/21\/25 21:47:06 CHERNANDEZ] 5YO AND 2YO FEM JUVS \/\/ WITH THE MOTHER IN THE LIVINGROOM  [12\/21\/25 21:46:51 CHERNANDEZ] TWO CHILDREN  [12\/21\/25 21:46:18 CHERNANDEZ] BOTH SUBJ ARE CLR LOCAL  [12\/21\/25 21:46:14 CHERNANDEZ] CALLER IS IN THE BATHROOM  [12\/21\/25 21:46:01 CHERNANDEZ] MARY PATTON  [12\/21\/25 21:45:33 CHERNANDEZ] GRANDSON - LOGAN STAMPS  [12\/21\/25 21:45:29 CHERNANDEZ] NO INJ  [12\/21\/25 21:45:20 CHERNANDEZ] NO WEAPONS  [12\/21\/25 21:45:19 CHERNANDEZ] VERBAL ONLY  [12\/21\/25 21:45:07 CHERNANDEZ] GRANDSON AND HIS GIRLF ARE IN TO IT  [12\/21\/25 21:44:56 CHERNANDEZ]]","cADLog":"[LAW] UDTS: {M106} SCENE SECURE  [12\/21\/25 21:49:11 ECLEMENS] Event spawned from EMS EMERGENCY CALL.  [12\/21\/2025 21:48:26 DSWINK] [LAW] EMS ENTR 33 TRAFFIC FOR JUV INJ TO THE HEAD  [12\/21\/25 21:48:16 CHERNANDEZ] UDTS: CARD SEEN BY 911  [12\/21\/25 21:48:05 DSWINK] Event spawned from DOMESTIC.  [12\/21\/2025 21:47:52 CHERNANDEZ] CLR OVERTON CO  [12\/21\/25 21:47:39 ECLEMENS] BABY IS BLEEDING  [12\/21\/25 21:47:38 CHERNANDEZ] FEM IS SCREAMING  [12\/21\/25 21:47:24 CHERNANDEZ] {M103} CHECK OVERTON CO  [12\/21\/25 21:47:22 ECLEMENS] YELLING ABOUT THE KIDS  [12\/21\/25 21:47:18 CHERNANDEZ] VERBAL IN THE BACKGROUND  [12\/21\/25 21:47:06 CHERNANDEZ] 5YO AND 2YO FEM JUVS \/\/ WITH THE MOTHER IN THE LIVINGROOM  [12\/21\/25 21:46:51 CHERNANDEZ] TWO CHILDREN  [12\/21\/25 21:46:18 CHERNANDEZ] BOTH SUBJ ARE CLR LOCAL  [12\/21\/25 21:46:14 CHERNANDEZ] CALLER IS IN THE BATHROOM  [12\/21\/25 21:46:01 CHERNANDEZ] MARY PATTON  [12\/21\/25 21:45:33 CHERNANDEZ] GRANDSON - LOGAN STAMPS  [12\/21\/25 21:45:29 CHERNANDEZ] NO INJ  [12\/21\/25 21:45:20 CHERNANDEZ] NO WEAPONS  [12\/21\/25 21:45:19 CHERNANDEZ] VERBAL ONLY  [12\/21\/25 21:45:07 CHERNANDEZ] GRANDSON AND HIS GIRLF ARE IN TO IT  [12\/21\/25 21:44:56 CHERNANDEZ]]","incidentLocationCity":"MONTEREY","streetName":"ROBBINS LN","incidentAddressTextVersionStreet":"209 ROBBINS LN","locationCoordinates":"36.14829,-85.27045"}
[2025-12-22 03:49:28] [INFO] Number of extracted fields: 21
[2025-12-22 03:49:28] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
MPD
EMS
MFD
RESC'
[2025-12-22 03:49:28] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
MPD
EMS
MFD
RESC', Parsed IDs = ["PCFD","MPD","EMS","MFD","RESC"], Assigned Agencies count = 4
[2025-12-22 03:49:28] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","MPD","EMS","MFD","RESC"]
[2025-12-22 03:49:28] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (position 1)
[2025-12-22 03:49:28] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department for AgencyCode 'PCFD'
[2025-12-22 03:49:28] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on AgencyCode 'PCFD'
[2025-12-22 03:49:28] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["MPD","EMS","MFD","RESC"]
[2025-12-22 03:49: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-22 03:49:28] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-22 03:49:28] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-22 03:49:28] [INFO] Normalized cADNumber to first value: 2025003133
[2025-12-22 03:49:28] [INFO] Found existing IncidentTypeMapping with ID: 6939328c99c5522d2
[2025-12-22 03:49:31] [INFO] Created new Dispatches record with ID: 6948bfc8bda878cdb
[2025-12-22 03:49:31] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139964_20251222_034927.XML
[2025-12-22 03:49:31] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139964_20251222_034927.XML
[2025-12-22 04:57:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139979_20251222_045707.XML
[2025-12-22 04:57:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139979_20251222_045707.XML for user: 68f1466aed072ad4a
[2025-12-22 04:57:07] [INFO] File size: 5701 bytes
[2025-12-22 04:57:08] [INFO] Created FTPFiles record with ID: 6948cfa40043c9c4f
[2025-12-22 04:57:08] [INFO] About to extract fields from XML. File size: 5701 bytes
[2025-12-22 04:57:08] [INFO] Number of mappings: 28
[2025-12-22 04:57:08] [INFO] Starting XML parsing. Content length: 5701
[2025-12-22 04:57:08] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-22 04:57:08] [INFO] Processing 28 field mappings
[2025-12-22 04:57:08] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-22 04:57:08] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-22 04:57:08] [INFO]   -> Found value: PCFD
EMS
RESC
[2025-12-22 04:57:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2025-12-22 04:57:08] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 04:57:08] [INFO] Found 3 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-22 04:57:08] [INFO]   -> Found value: 2025003134
2025019870
[2025-12-22 04:57:08] [INFO]   -> Set field 'incidentInternalId' = "2025003134\n2025019870"
[2025-12-22 04:57:08] [INFO]   -> Set field 'dispatchRunNumber' = "2025003134\n2025019870"
[2025-12-22 04:57:08] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-22 04:57:08] [INFO]   -> Found value: BREATHING PROBLEMS
[2025-12-22 04:57:08] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2025-12-22 04:57:08] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-22 04:57:08] [INFO]   -> Found value: 7585
[2025-12-22 04:57:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7585
[2025-12-22 04:57:08] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-22 04:57:08] [INFO]   -> Found value: TN
[2025-12-22 04:57:08] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 04:57:08] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-22 04:57:08] [INFO]   -> Found value: 38544
[2025-12-22 04:57:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2025-12-22 04:57:08] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-22 04:57:08] [INFO]   -> No value found (null or empty)
[2025-12-22 04:57:08] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-22 04:57:08] [INFO]   -> No value found (null or empty)
[2025-12-22 04:57:08] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-22 04:57:08] [INFO]   -> Found value: 36.10597
[2025-12-22 04:57:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1059699999999992314769770018756389617919921875
[2025-12-22 04:57:08] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-22 04:57:08] [INFO]   -> Found value: -85.64130
[2025-12-22 04:57:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.641300000000001091393642127513885498046875
[2025-12-22 04:57:08] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-22 04:57:08] [INFO]   -> Found value: 2025-12-21 22:56:09
[2025-12-22 04:57:08] [INFO]   -> Set field 'alarm' = "2025-12-21 22:56:09"
[2025-12-22 04:57:08] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-22 04:57:08] [INFO]   -> Found value: 2025-12-21 22:56:54
[2025-12-22 04:57:08] [INFO]   -> Set field 'dispatched' = "2025-12-21 22:56:54"
[2025-12-22 04:57:08] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-22 04:57:08] [INFO]   -> No value found (null or empty)
[2025-12-22 04:57:08] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-22 04:57:08] [INFO]   -> No value found (null or empty)
[2025-12-22 04:57:08] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-22 04:57:08] [INFO]   -> No value found (null or empty)
[2025-12-22 04:57:08] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-22 04:57:08] [INFO]   -> Found value: EWING DR/TOM FALL RD
[2025-12-22 04:57:08] [INFO]   -> Set field 'incidentLocationCross' = "EWING DR\/TOM FALL RD"
[2025-12-22 04:57:08] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-22 04:57:08] [INFO]   -> Found value: PCFR
[2025-12-22 04:57:08] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-22 04:57:08] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-22 04:57:08] [INFO]   -> Found value: 2025-12-21 22:56:54
[2025-12-22 04:57:08] [INFO]   -> Set field 'timedispatch' = "2025-12-21 22:56:54"
[2025-12-22 04:57:08] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-22 04:57:08] [INFO]   -> No value found (null or empty)
[2025-12-22 04:57:08] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-22 04:57:08] [INFO]   -> No value found (null or empty)
[2025-12-22 04:57:08] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-22 04:57:08] [INFO]   -> No value found (null or empty)
[2025-12-22 04:57:08] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-22 04:57:08] [INFO]   -> No value found (null or empty)
[2025-12-22 04:57:08] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-22 04:57:08] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-22 04:57:08] [INFO]   -> Found value: 20250139979
20250139978
20250139980
[2025-12-22 04:57:08] [INFO]   -> Set field 'policeReportNumber' = "20250139979\n20250139978\n20250139980"
[2025-12-22 04:57:08] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-22 04:57:08] [INFO]   -> Found value: [EMS] 78 YOM//LARRY STANLEY  [12/21/25 22:56:57 KMORGAN2] [EMS] GOT HOME SATURDAY  [12/21/25 22:56:3...
[2025-12-22 04:57:08] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 78 YOM\/\/LARRY STANLEY  [12\/21\/25 22:56:57 KMORGAN2] [EMS] GOT HOME SATURDAY  [12\/21\/25 22:56:38 KMORGAN2] [EMS] WAS IN HOSP RECENTLY FOR BLOOD CLOTS  [12\/21\/25 22:56:31 KMORGAN2] [APCO INTELLICOMM] Case ID: NzDGgCf7GI Caller Phone: 9318583139 Caller Name: STANLEY LARRY M &amp; CINDY Incident Location: 7585 SOUTHFORK RD Incident Location Detail: EWING DR\/TOM FALL RD Nature: BREATHING PROBLEMS Incident #: 20250139978 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 22:56:11 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/21\/2025 22:56:09 KMORGAN2] O2 81  [12\/21\/25 22:56:03 KMORGAN2]]"
[2025-12-22 04:57:08] [INFO]   -> Set field 'cADLog' = "[EMS] 78 YOM\/\/LARRY STANLEY  [12\/21\/25 22:56:57 KMORGAN2] [EMS] GOT HOME SATURDAY  [12\/21\/25 22:56:38 KMORGAN2] [EMS] WAS IN HOSP RECENTLY FOR BLOOD CLOTS  [12\/21\/25 22:56:31 KMORGAN2] [APCO INTELLICOMM] Case ID: NzDGgCf7GI Caller Phone: 9318583139 Caller Name: STANLEY LARRY M &amp; CINDY Incident Location: 7585 SOUTHFORK RD Incident Location Detail: EWING DR\/TOM FALL RD Nature: BREATHING PROBLEMS Incident #: 20250139978 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 22:56:11 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/21\/2025 22:56:09 KMORGAN2] O2 81  [12\/21\/25 22:56:03 KMORGAN2]]"
[2025-12-22 04:57:08] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-22 04:57:08] [INFO]   -> Found value: BAXTER
[2025-12-22 04:57:08] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2025-12-22 04:57:08] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-22 04:57:08] [INFO]   -> Found value: SOUTHFORK
[2025-12-22 04:57:08] [INFO]   -> Set field 'streetName' = "SOUTHFORK"
[2025-12-22 04:57:08] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-22 04:57:08] [INFO]   -> Found value: RD
[2025-12-22 04:57:08] [INFO]   -> Set field 'streetType' = "RD"
[2025-12-22 04:57:08] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-22 04:57:08] [INFO]   -> Found value: 7585 SOUTHFORK RD
[2025-12-22 04:57:08] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7585 SOUTHFORK RD"
[2025-12-22 04:57:08] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-22 04:57:08] [INFO] Concatenating street name and type
[2025-12-22 04:57:08] [INFO]   -> Combined street name: SOUTHFORK RD
[2025-12-22 04:57:08] [INFO] Built locationCoordinates from lat/lng: 36.10597,-85.6413
[2025-12-22 04:57:08] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2025003134\n2025019870","dispatchRunNumber":"2025003134\n2025019870","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":7585,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.1059699999999992314769770018756389617919921875,"nERISIncidentLongitude":-85.641300000000001091393642127513885498046875,"alarm":"2025-12-21 22:56:09","dispatched":"2025-12-21 22:56:54","incidentLocationCross":"EWING DR\/TOM FALL RD","cADVehicleID":"PCFR","timedispatch":"2025-12-21 22:56:54","policeReportNumber":"20250139979\n20250139978\n20250139980","dispatchNotes":"[EMS] 78 YOM\/\/LARRY STANLEY  [12\/21\/25 22:56:57 KMORGAN2] [EMS] GOT HOME SATURDAY  [12\/21\/25 22:56:38 KMORGAN2] [EMS] WAS IN HOSP RECENTLY FOR BLOOD CLOTS  [12\/21\/25 22:56:31 KMORGAN2] [APCO INTELLICOMM] Case ID: NzDGgCf7GI Caller Phone: 9318583139 Caller Name: STANLEY LARRY M &amp; CINDY Incident Location: 7585 SOUTHFORK RD Incident Location Detail: EWING DR\/TOM FALL RD Nature: BREATHING PROBLEMS Incident #: 20250139978 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 22:56:11 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/21\/2025 22:56:09 KMORGAN2] O2 81  [12\/21\/25 22:56:03 KMORGAN2]]","cADLog":"[EMS] 78 YOM\/\/LARRY STANLEY  [12\/21\/25 22:56:57 KMORGAN2] [EMS] GOT HOME SATURDAY  [12\/21\/25 22:56:38 KMORGAN2] [EMS] WAS IN HOSP RECENTLY FOR BLOOD CLOTS  [12\/21\/25 22:56:31 KMORGAN2] [APCO INTELLICOMM] Case ID: NzDGgCf7GI Caller Phone: 9318583139 Caller Name: STANLEY LARRY M &amp; CINDY Incident Location: 7585 SOUTHFORK RD Incident Location Detail: EWING DR\/TOM FALL RD Nature: BREATHING PROBLEMS Incident #: 20250139978 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 22:56:11 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/21\/2025 22:56:09 KMORGAN2] O2 81  [12\/21\/25 22:56:03 KMORGAN2]]","incidentLocationCity":"BAXTER","streetName":"SOUTHFORK RD","incidentAddressTextVersionStreet":"7585 SOUTHFORK RD","locationCoordinates":"36.10597,-85.6413"}
[2025-12-22 04:57:08] [INFO] Number of extracted fields: 21
[2025-12-22 04:57:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-22 04:57:08] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Assigned Agencies count = 4
[2025-12-22 04:57:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2025-12-22 04:57:08] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (position 1)
[2025-12-22 04:57:08] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department for AgencyCode 'PCFD'
[2025-12-22 04:57:08] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on AgencyCode 'PCFD'
[2025-12-22 04:57:08] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["EMS","RESC"]
[2025-12-22 04:57: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-22 04:57:08] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-22 04:57:08] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-22 04:57:08] [INFO] Normalized cADNumber to first value: 2025003134
[2025-12-22 04:57:08] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2025-12-22 04:57:11] [INFO] Created new Dispatches record with ID: 6948cfa4a6f0fd4e0
[2025-12-22 04:57:11] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139979_20251222_045707.XML
[2025-12-22 04:57:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139979_20251222_045707.XML
[2025-12-22 05:00:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD25-049734_2025-12-21 23:00:49Z.xml
[2025-12-22 05:00:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD25-049734_2025-12-21 23:00:49Z.xml for user: 66a7b78a47817ab30
[2025-12-22 05:00:52] [INFO] File size: 32325 bytes
[2025-12-22 05:00:53] [INFO] Created FTPFiles record with ID: 6948d0853acfd3218
[2025-12-22 05:00:53] [INFO] About to extract fields from XML. File size: 32325 bytes
[2025-12-22 05:00:53] [INFO] Number of mappings: 12
[2025-12-22 05:00:53] [INFO] Starting XML parsing. Content length: 32325
[2025-12-22 05:00:53] [INFO] XML parsed successfully. Root element: CADServiceCallDocument
[2025-12-22 05:00:53] [INFO] Processing 12 field mappings
[2025-12-22 05:00:53] [INFO] Mapping #1: Extracting 'CADServiceCall.ServiceCallResponseLocation.LocationAddress.StructuredAddress.LocationStreet.StreetNumberText' => 'incidentLocationStreetNumber'
[2025-12-22 05:00:53] [INFO]   -> Found value: 200
[2025-12-22 05:00:53] [INFO]   -> Set field 'incidentLocationStreetNumber' = 200
[2025-12-22 05:00:53] [INFO] Mapping #2: Extracting 'CADServiceCall.ServiceCallResponseLocation.LocationAddress.StructuredAddress.LocationStreet.StreetFullText' => 'streetName'
[2025-12-22 05:00:53] [INFO]   -> Found value: SHADTOWN RD
[2025-12-22 05:00:53] [INFO]   -> Set field 'streetName' = "SHADTOWN RD"
[2025-12-22 05:00:53] [INFO] Mapping #3: Extracting 'CADServiceCall.ServiceCallResponseLocation.LocationAddress.StructuredAddress.LocationCityName' => 'incidentLocationCity'
[2025-12-22 05:00:53] [INFO]   -> Found value: MARTIN
[2025-12-22 05:00:53] [INFO]   -> Set field 'incidentLocationCity' = "MARTIN"
[2025-12-22 05:00:53] [INFO] Mapping #4: Extracting 'CADServiceCall.ServiceCallResponseLocation.LocationAddress.StructuredAddress.LocationStateName' => 'incidentLocationStateName'
[2025-12-22 05:00:53] [INFO]   -> Found value: TN
[2025-12-22 05:00:53] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 05:00:53] [INFO] Mapping #5: Extracting 'CADServiceCall.ServiceCallResponseLocation.LocationAddress.StructuredAddress.LocationPostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 05:00:53] [INFO]   -> Found value: 38237
[2025-12-22 05:00:53] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38237
[2025-12-22 05:00:53] [INFO] Mapping #6: Extracting 'CADServiceCall.ServiceCallResponseLocation.LocationTwoDimensionalGeographicCoordinate.GeographicCoordinateLatitude.LatitudeDegreeValue' => 'nERISIncidentLatitude'
[2025-12-22 05:00:53] [INFO]   -> Found value: 36.3417056320137
[2025-12-22 05:00:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.3417056320136993008418357931077480316162109375
[2025-12-22 05:00:53] [INFO] Mapping #7: Extracting 'CADServiceCall.ServiceCallResponseLocation.LocationTwoDimensionalGeographicCoordinate.GeographicCoordinateLongitude.LongitudeDegreeValue' => 'nERISIncidentLongitude'
[2025-12-22 05:00:53] [INFO]   -> Found value: -88.93529034179
[2025-12-22 05:00:53] [INFO]   -> Set field 'nERISIncidentLongitude' = -88.93529034178999381765606813132762908935546875
[2025-12-22 05:00:53] [INFO] Mapping #8: Extracting 'CADServiceCall.CallInitiatedDateTime' => 'alarm'
[2025-12-22 05:00:53] [INFO] Found 6 elements for 'CallInitiatedDateTime', concatenating 6 non-empty values
[2025-12-22 05:00:53] [INFO]   -> Found value: 2025-12-21T23:00:34Z
2025-12-16T22:30:42Z
2025-12-14T01:08:26Z
2025-12-02T22:55:35Z
2025-11-30T23:52...
[2025-12-22 05:00:53] [ERROR] Error formatting datetime '2025-12-21T23:00:34Z
2025-12-16T22:30:42Z
2025-12-14T01:08:26Z
2025-12-02T22:55:35Z
2025-11-30T23:52:40Z
2025-11-21T22:41:17Z': Failed to parse time string (2025-12-21T23:00:34Z
2025-12-16T22:30:42Z
2025-12-14T01:08:26Z
2025-12-02T22:55:35Z
2025-11-30T23:52:40Z
2025-11-21T22:41:17Z) at position 21 (2): Double time specification
[2025-12-22 05:00:53] [INFO]   -> Set field 'alarm' = null
[2025-12-22 05:00:53] [INFO] Mapping #9: Extracting 'CADServiceCall.UnitAssignment.UnitDispatchedDateTime' => 'dispatched'
[2025-12-22 05:00:53] [INFO]   -> Found value: 2025-12-21T23:00:48Z
[2025-12-22 05:00:53] [INFO]   -> Set field 'dispatched' = "2025-12-21 23:00:48"
[2025-12-22 05:00:53] [INFO] Mapping #10: Extracting 'CADServiceCall.AgencyEventID' => ["cADNumber","dispatchRunNumber"]
[2025-12-22 05:00:53] [INFO] Found 6 elements for 'AgencyEventID', concatenating 6 non-empty values
[2025-12-22 05:00:53] [INFO]   -> Found value: CAD25-049734
CAD25-048805
CAD25-048367
WCFS2546723
WCFS2546510
WCFS2545392
[2025-12-22 05:00:53] [INFO]   -> Set field 'cADNumber' = "CAD25-049734\nCAD25-048805\nCAD25-048367\nWCFS2546723\nWCFS2546510\nWCFS2545392"
[2025-12-22 05:00:53] [INFO]   -> Set field 'dispatchRunNumber' = "CAD25-049734\nCAD25-048805\nCAD25-048367\nWCFS2546723\nWCFS2546510\nWCFS2545392"
[2025-12-22 05:00:53] [INFO] Mapping #11: Extracting 'CADServiceCall.Note[0].CallNoteText' => 'dispatchNotes'
[2025-12-22 05:00:53] [INFO]   -> Found value: EVENT ENTRY INITIATED AT 12/21/2025 23:00:34.222
[2025-12-22 05:00:53] [INFO]   -> Set field 'dispatchNotes' = "EVENT ENTRY INITIATED AT 12\/21\/2025 23:00:34.222"
[2025-12-22 05:00:53] [INFO] Mapping #12: Extracting 'CADServiceCall.CallInitialNatureCode' => 'incidentTypeValue1'
[2025-12-22 05:00:53] [INFO]   -> Found value: PROP
[2025-12-22 05:00:53] [INFO]   -> Set field 'incidentTypeValue1' = "PROP"
[2025-12-22 05:00:53] [INFO] Finished extracting fields. Total fields extracted: 13
[2025-12-22 05:00:53] [INFO] Built locationCoordinates from lat/lng: 36.341705632014,-88.93529034179
[2025-12-22 05:00:53] [INFO] Extracted parsing rules data: {"incidentLocationStreetNumber":200,"streetName":"SHADTOWN RD","incidentLocationCity":"MARTIN","incidentLocationStateName":"TN","nERISIncidentPostalCode":38237,"nERISIncidentLatitude":36.3417056320136993008418357931077480316162109375,"nERISIncidentLongitude":-88.93529034178999381765606813132762908935546875,"alarm":null,"dispatched":"2025-12-21 23:00:48","cADNumber":"CAD25-049734\nCAD25-048805\nCAD25-048367\nWCFS2546723\nWCFS2546510\nWCFS2545392","dispatchRunNumber":"CAD25-049734\nCAD25-048805\nCAD25-048367\nWCFS2546723\nWCFS2546510\nWCFS2545392","dispatchNotes":"EVENT ENTRY INITIATED AT 12\/21\/2025 23:00:34.222","incidentTypeValue1":"PROP","locationCoordinates":"36.341705632014,-88.93529034179"}
[2025-12-22 05:00:53] [INFO] Number of extracted fields: 14
[2025-12-22 05:00:53] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 05:00:53] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 1
[2025-12-22 05:00:53] [WARNING] WARNING: Multi-agency mailbox (1 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 05:00:53] [INFO] Single-agency mode: Using mailbox saasclientId: 653ad9b50d6738006
[2025-12-22 05:00:53] [INFO] Final routing: saasclientId = 653ad9b50d6738006, dispatchStationsIds = ["657eac8334fb835a4"]
[2025-12-22 05:00:53] [INFO] Normalized cADNumber to first value: CAD25-049734
[2025-12-22 05:00:53] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"PROP","saasclientId":"653ad9b50d6738006","name":"PROP"}
[2025-12-22 05:00:53] [INFO] Created new IncidentTypeMapping with ID: 6948d0857fb0fdead
[2025-12-22 05:00:57] [INFO] Created new Dispatches record with ID: 6948d085c7017fde9
[2025-12-22 05:00:57] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD25-049734_2025-12-21 23:00:49Z.xml
[2025-12-22 05:00:57] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD25-049734_2025-12-21 23:00:49Z.xml
[2025-12-22 05:01:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD25-049734_2025-12-21 23:01:09Z.xml
[2025-12-22 05:01:10] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD25-049734_2025-12-21 23:01:09Z.xml
[2025-12-22 05:01:30] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD25-049734_2025-12-21 23:01:28Z.xml
[2025-12-22 05:01:30] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD25-049734_2025-12-21 23:01:28Z.xml
[2025-12-22 05:04:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139987_20251222_050447.XML
[2025-12-22 05:04:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139987_20251222_050447.XML for user: 68f1466aed072ad4a
[2025-12-22 05:04:47] [INFO] File size: 6050 bytes
[2025-12-22 05:04:47] [INFO] Created FTPFiles record with ID: 6948d16feaf4ac564
[2025-12-22 05:04:47] [INFO] About to extract fields from XML. File size: 6050 bytes
[2025-12-22 05:04:47] [INFO] Number of mappings: 28
[2025-12-22 05:04:47] [INFO] Starting XML parsing. Content length: 6050
[2025-12-22 05:04:47] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-22 05:04:47] [INFO] Processing 28 field mappings
[2025-12-22 05:04:47] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-22 05:04:47] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2025-12-22 05:04:47] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2025-12-22 05:04:47] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2025-12-22 05:04:47] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 05:04:47] [INFO] Found 4 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-22 05:04:47] [INFO]   -> Found value: 2025003135
2025019872
[2025-12-22 05:04:47] [INFO]   -> Set field 'incidentInternalId' = "2025003135\n2025019872"
[2025-12-22 05:04:47] [INFO]   -> Set field 'dispatchRunNumber' = "2025003135\n2025019872"
[2025-12-22 05:04:47] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-22 05:04:47] [INFO]   -> Found value: CHEST PAIN
[2025-12-22 05:04:47] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2025-12-22 05:04:47] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-22 05:04:47] [INFO]   -> Found value: 1841
[2025-12-22 05:04:47] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1841
[2025-12-22 05:04:47] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-22 05:04:47] [INFO]   -> Found value: TN
[2025-12-22 05:04:47] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 05:04:47] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-22 05:04:47] [INFO]   -> Found value: 38544
[2025-12-22 05:04:47] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2025-12-22 05:04:47] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-22 05:04:47] [INFO]   -> No value found (null or empty)
[2025-12-22 05:04:47] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-22 05:04:47] [INFO]   -> No value found (null or empty)
[2025-12-22 05:04:47] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-22 05:04:47] [INFO]   -> Found value: 36.19065
[2025-12-22 05:04:47] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19064999999999798774297232739627361297607421875
[2025-12-22 05:04:47] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-22 05:04:47] [INFO]   -> Found value: -85.61421
[2025-12-22 05:04:47] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6142099999999999226929503493010997772216796875
[2025-12-22 05:04:47] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-22 05:04:47] [INFO]   -> Found value: 2025-12-21 23:04:01
[2025-12-22 05:04:47] [INFO]   -> Set field 'alarm' = "2025-12-21 23:04:01"
[2025-12-22 05:04:47] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-22 05:04:47] [INFO]   -> Found value: 2025-12-21 23:04:35
[2025-12-22 05:04:47] [INFO]   -> Set field 'dispatched' = "2025-12-21 23:04:35"
[2025-12-22 05:04:47] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-22 05:04:47] [INFO]   -> No value found (null or empty)
[2025-12-22 05:04:47] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-22 05:04:47] [INFO]   -> No value found (null or empty)
[2025-12-22 05:04:47] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-22 05:04:47] [INFO]   -> No value found (null or empty)
[2025-12-22 05:04:47] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-22 05:04:47] [INFO]   -> Found value: FLATT WHEELER RD/OLD GAINESBORO RD
[2025-12-22 05:04:47] [INFO]   -> Set field 'incidentLocationCross' = "FLATT WHEELER RD\/OLD GAINESBORO RD"
[2025-12-22 05:04:47] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-22 05:04:47] [INFO]   -> Found value: PCFR
[2025-12-22 05:04:47] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-22 05:04:47] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-22 05:04:47] [INFO]   -> Found value: 2025-12-21 23:04:35
[2025-12-22 05:04:47] [INFO]   -> Set field 'timedispatch' = "2025-12-21 23:04:35"
[2025-12-22 05:04:47] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-22 05:04:47] [INFO]   -> No value found (null or empty)
[2025-12-22 05:04:47] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-22 05:04:47] [INFO]   -> No value found (null or empty)
[2025-12-22 05:04:47] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-22 05:04:47] [INFO]   -> No value found (null or empty)
[2025-12-22 05:04:47] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-22 05:04:47] [INFO]   -> No value found (null or empty)
[2025-12-22 05:04:47] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-22 05:04:47] [INFO] Found 4 elements for 'CadInciNumber', concatenating 4 non-empty values
[2025-12-22 05:04:47] [INFO]   -> Found value: 20250139987
20250139985
20250139986
20250139988
[2025-12-22 05:04:47] [INFO]   -> Set field 'policeReportNumber' = "20250139987\n20250139985\n20250139986\n20250139988"
[2025-12-22 05:04:47] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-22 05:04:47] [INFO]   -> Found value: [LAW] PCSO ENRT  [12/21/25 23:04:35 ECLEMENS] [EMS] RONNIE SUGGS//52 YOM  [12/21/25 23:04:34 KMORGAN...
[2025-12-22 05:04:47] [INFO]   -> Set field 'dispatchNotes' = "[LAW] PCSO ENRT  [12\/21\/25 23:04:35 ECLEMENS] [EMS] RONNIE SUGGS\/\/52 YOM  [12\/21\/25 23:04:34 KMORGAN2] [EMS] FEELS LIKE SOMEONE IS SITTING ON HIS CHEST  [12\/21\/25 23:04:24 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [12\/21\/25 23:04:16 ECLEMENS] [EMS] STARTED 3 HRS AGO  [12\/21\/25 23:04:10 KMORGAN2] [APCO INTELLICOMM] Case ID: SwiDeOpQ3x Caller Phone: 6153180125 Caller Name: VERIZON Incident Location: 1841 BLOOMINGTON RD Incident Location Detail: FLATT WHEELER RD\/OLD GAINESBORO RD Nature: CHEST PAIN Incident #: 20250139985 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 23:04:03 PSUTIL01] Event spawned from CHEST PAIN.  [12\/21\/2025 23:04:01 KMORGAN2] JUST HAD KNEE REPLACEMENT  190\/110 BP CHEST PAIN  [12\/21\/25 23:03:55 KMORGAN2]]"
[2025-12-22 05:04:47] [INFO]   -> Set field 'cADLog' = "[LAW] PCSO ENRT  [12\/21\/25 23:04:35 ECLEMENS] [EMS] RONNIE SUGGS\/\/52 YOM  [12\/21\/25 23:04:34 KMORGAN2] [EMS] FEELS LIKE SOMEONE IS SITTING ON HIS CHEST  [12\/21\/25 23:04:24 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [12\/21\/25 23:04:16 ECLEMENS] [EMS] STARTED 3 HRS AGO  [12\/21\/25 23:04:10 KMORGAN2] [APCO INTELLICOMM] Case ID: SwiDeOpQ3x Caller Phone: 6153180125 Caller Name: VERIZON Incident Location: 1841 BLOOMINGTON RD Incident Location Detail: FLATT WHEELER RD\/OLD GAINESBORO RD Nature: CHEST PAIN Incident #: 20250139985 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 23:04:03 PSUTIL01] Event spawned from CHEST PAIN.  [12\/21\/2025 23:04:01 KMORGAN2] JUST HAD KNEE REPLACEMENT  190\/110 BP CHEST PAIN  [12\/21\/25 23:03:55 KMORGAN2]]"
[2025-12-22 05:04:47] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-22 05:04:47] [INFO]   -> Found value: BAXTER
[2025-12-22 05:04:47] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2025-12-22 05:04:47] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-22 05:04:47] [INFO]   -> Found value: BLOOMINGTON
[2025-12-22 05:04:47] [INFO]   -> Set field 'streetName' = "BLOOMINGTON"
[2025-12-22 05:04:47] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-22 05:04:47] [INFO]   -> Found value: RD
[2025-12-22 05:04:47] [INFO]   -> Set field 'streetType' = "RD"
[2025-12-22 05:04:47] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-22 05:04:47] [INFO]   -> Found value: 1841 BLOOMINGTON RD
[2025-12-22 05:04:47] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1841 BLOOMINGTON RD"
[2025-12-22 05:04:47] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-22 05:04:47] [INFO] Concatenating street name and type
[2025-12-22 05:04:47] [INFO]   -> Combined street name: BLOOMINGTON RD
[2025-12-22 05:04:47] [INFO] Built locationCoordinates from lat/lng: 36.19065,-85.61421
[2025-12-22 05:04:47] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2025003135\n2025019872","dispatchRunNumber":"2025003135\n2025019872","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":1841,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.19064999999999798774297232739627361297607421875,"nERISIncidentLongitude":-85.6142099999999999226929503493010997772216796875,"alarm":"2025-12-21 23:04:01","dispatched":"2025-12-21 23:04:35","incidentLocationCross":"FLATT WHEELER RD\/OLD GAINESBORO RD","cADVehicleID":"PCFR","timedispatch":"2025-12-21 23:04:35","policeReportNumber":"20250139987\n20250139985\n20250139986\n20250139988","dispatchNotes":"[LAW] PCSO ENRT  [12\/21\/25 23:04:35 ECLEMENS] [EMS] RONNIE SUGGS\/\/52 YOM  [12\/21\/25 23:04:34 KMORGAN2] [EMS] FEELS LIKE SOMEONE IS SITTING ON HIS CHEST  [12\/21\/25 23:04:24 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [12\/21\/25 23:04:16 ECLEMENS] [EMS] STARTED 3 HRS AGO  [12\/21\/25 23:04:10 KMORGAN2] [APCO INTELLICOMM] Case ID: SwiDeOpQ3x Caller Phone: 6153180125 Caller Name: VERIZON Incident Location: 1841 BLOOMINGTON RD Incident Location Detail: FLATT WHEELER RD\/OLD GAINESBORO RD Nature: CHEST PAIN Incident #: 20250139985 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 23:04:03 PSUTIL01] Event spawned from CHEST PAIN.  [12\/21\/2025 23:04:01 KMORGAN2] JUST HAD KNEE REPLACEMENT  190\/110 BP CHEST PAIN  [12\/21\/25 23:03:55 KMORGAN2]]","cADLog":"[LAW] PCSO ENRT  [12\/21\/25 23:04:35 ECLEMENS] [EMS] RONNIE SUGGS\/\/52 YOM  [12\/21\/25 23:04:34 KMORGAN2] [EMS] FEELS LIKE SOMEONE IS SITTING ON HIS CHEST  [12\/21\/25 23:04:24 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [12\/21\/25 23:04:16 ECLEMENS] [EMS] STARTED 3 HRS AGO  [12\/21\/25 23:04:10 KMORGAN2] [APCO INTELLICOMM] Case ID: SwiDeOpQ3x Caller Phone: 6153180125 Caller Name: VERIZON Incident Location: 1841 BLOOMINGTON RD Incident Location Detail: FLATT WHEELER RD\/OLD GAINESBORO RD Nature: CHEST PAIN Incident #: 20250139985 CAD Call Taker: KMORGAN2 Chief Complaint: (empty)  [12\/21\/25 23:04:03 PSUTIL01] Event spawned from CHEST PAIN.  [12\/21\/2025 23:04:01 KMORGAN2] JUST HAD KNEE REPLACEMENT  190\/110 BP CHEST PAIN  [12\/21\/25 23:03:55 KMORGAN2]]","incidentLocationCity":"BAXTER","streetName":"BLOOMINGTON RD","incidentAddressTextVersionStreet":"1841 BLOOMINGTON RD","locationCoordinates":"36.19065,-85.61421"}
[2025-12-22 05:04:47] [INFO] Number of extracted fields: 21
[2025-12-22 05:04:47] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2025-12-22 05:04:47] [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-22 05:04:47] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2025-12-22 05:04:47] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (position 1)
[2025-12-22 05:04:48] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department for AgencyCode 'PCFD'
[2025-12-22 05:04:48] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on AgencyCode 'PCFD'
[2025-12-22 05:04:48] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["EMS","PCSO","RESC"]
[2025-12-22 05:04:48] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-22 05:04:48] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-22 05:04:48] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-22 05:04:48] [INFO] Normalized cADNumber to first value: 2025003135
[2025-12-22 05:04:48] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2025-12-22 05:04:51] [INFO] Created new Dispatches record with ID: 6948d170aa8bbc80d
[2025-12-22 05:04:51] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139987_20251222_050447.XML
[2025-12-22 05:04:51] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250139987_20251222_050447.XML
[2025-12-22 05:42:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-30537.xml
[2025-12-22 05:42:57] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-30537.xml for user: 68d56363ec1209189
[2025-12-22 05:42:57] [INFO] File size: 1484 bytes
[2025-12-22 05:42:58] [INFO] Created FTPFiles record with ID: 6948da6209d2137f9
[2025-12-22 05:42:58] [INFO] About to extract fields from XML. File size: 1484 bytes
[2025-12-22 05:42:58] [INFO] Number of mappings: 21
[2025-12-22 05:42:58] [INFO] Starting XML parsing. Content length: 1484
[2025-12-22 05:42:58] [INFO] XML parsed successfully. Root element: Incident
[2025-12-22 05:42:58] [INFO] Processing 21 field mappings
[2025-12-22 05:42:58] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2025-12-22 05:42:58] [INFO]   -> Found value: 25-30537
[2025-12-22 05:42:58] [INFO]   -> Set field 'dispatchRunNumber' = "25-30537"
[2025-12-22 05:42:58] [INFO]   -> Set field 'cADNumber' = "25-30537"
[2025-12-22 05:42:58] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-22 05:42:58] [INFO]   -> Found value: 1008
[2025-12-22 05:42:58] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1008
[2025-12-22 05:42:58] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-22 05:42:58] [INFO]   -> Found value: N MAIN ST
[2025-12-22 05:42:58] [INFO]   -> Set field 'streetName' = "N MAIN ST"
[2025-12-22 05:42:58] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-22 05:42:58] [INFO]   -> No value found (null or empty)
[2025-12-22 05:42:58] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-22 05:42:58] [INFO]   -> Found value: SIKESTON
[2025-12-22 05:42:58] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2025-12-22 05:42:58] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-22 05:42:58] [INFO]   -> Found value: MDMC
[2025-12-22 05:42:58] [INFO]   -> Set field 'businessName' = "MDMC"
[2025-12-22 05:42:58] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-22 05:42:58] [INFO]   -> Found value: MO
[2025-12-22 05:42:58] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2025-12-22 05:42:58] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-22 05:42:58] [INFO]   -> Found value: 63801
[2025-12-22 05:42:58] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2025-12-22 05:42:58] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-22 05:42:58] [INFO]   -> Found value: 0
[2025-12-22 05:42:58] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-22 05:42:58] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-22 05:42:58] [INFO]   -> Found value: 0
[2025-12-22 05:42:58] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-22 05:42:58] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-22 05:42:58] [INFO]   -> Found value: FIRE-AIRCRAFT STANDBY
[2025-12-22 05:42:58] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-AIRCRAFT STANDBY"
[2025-12-22 05:42:58] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-22 05:42:58] [INFO]   -> Found value: 12-21-2025 22:29:24|ETA 15 MINS  12-21-2025 22:31:57|STATION 3 COPY PAGE 12-21-2025 22:57:58|CREW ON...
[2025-12-22 05:42:58] [INFO]   -> Set field 'dispatchNotes' = "12-21-2025 22:29:24|ETA 15 MINS  12-21-2025 22:31:57|STATION 3 COPY PAGE 12-21-2025 22:57:58|CREW ON BROAD ENROUTE TO ER 12-21-2025 22:58:34|ARIVE AT ER 1.2"
[2025-12-22 05:42:58] [INFO]   -> Set field 'cADLog' = "12-21-2025 22:29:24|ETA 15 MINS  12-21-2025 22:31:57|STATION 3 COPY PAGE 12-21-2025 22:57:58|CREW ON BROAD ENROUTE TO ER 12-21-2025 22:58:34|ARIVE AT ER 1.2"
[2025-12-22 05:42:58] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-22 05:42:58] [INFO]   -> Found value: 12-21-2025T22:31:16
[2025-12-22 05:42:58] [INFO] Reformatted DD-MM-YYYY date '12-21-2025' (day=12, month=21) to ISO: 2025-21-12T22:31:16
[2025-12-22 05:42:58] [ERROR] Error formatting datetime '2025-21-12T22:31:16': Failed to parse time string (2025-21-12T22:31:16) at position 6 (1): Unexpected character
[2025-12-22 05:42:58] [INFO]   -> Set field 'alarm' = null
[2025-12-22 05:42:58] [INFO] Reformatted DD-MM-YYYY date '12-21-2025' (day=12, month=21) to ISO: 2025-21-12T22:31:16
[2025-12-22 05:42:58] [ERROR] Error formatting datetime '2025-21-12T22:31:16': Failed to parse time string (2025-21-12T22:31:16) at position 6 (1): Unexpected character
[2025-12-22 05:42:58] [INFO]   -> Set field 'dispatched' = null
[2025-12-22 05:42:58] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-22 05:42:58] [INFO]   -> Found value: 12-21-2025T22:37:01
[2025-12-22 05:42:58] [INFO] Reformatted DD-MM-YYYY date '12-21-2025' (day=12, month=21) to ISO: 2025-21-12T22:37:01
[2025-12-22 05:42:58] [ERROR] Error formatting datetime '2025-21-12T22:37:01': Failed to parse time string (2025-21-12T22:37:01) at position 6 (1): Unexpected character
[2025-12-22 05:42:58] [INFO]   -> Set field 'onScene' = null
[2025-12-22 05:42:58] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-22 05:42:58] [INFO]   -> Found value: 12-21-2025T23:42:20
[2025-12-22 05:42:58] [INFO] Reformatted DD-MM-YYYY date '12-21-2025' (day=12, month=21) to ISO: 2025-21-12T23:42:20
[2025-12-22 05:42:58] [ERROR] Error formatting datetime '2025-21-12T23:42:20': Failed to parse time string (2025-21-12T23:42:20) at position 6 (1): Unexpected character
[2025-12-22 05:42:58] [INFO]   -> Set field 'cleared' = null
[2025-12-22 05:42:58] [INFO] Reformatted DD-MM-YYYY date '12-21-2025' (day=12, month=21) to ISO: 2025-21-12T23:42:20
[2025-12-22 05:42:58] [ERROR] Error formatting datetime '2025-21-12T23:42:20': Failed to parse time string (2025-21-12T23:42:20) at position 6 (1): Unexpected character
[2025-12-22 05:42:58] [INFO]   -> Set field 'inService' = null
[2025-12-22 05:42:58] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-22 05:42:58] [INFO]   -> Found value: SIK STILL
[2025-12-22 05:42:58] [INFO]   -> Set field 'cADVehicleID' = "SIK STILL"
[2025-12-22 05:42:58] [INFO]   -> Set field 'name' = "SIK STILL"
[2025-12-22 05:42:58] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-22 05:42:58] [INFO]   -> No value found (null or empty)
[2025-12-22 05:42:58] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-22 05:42:58] [INFO]   -> No value found (null or empty)
[2025-12-22 05:42:58] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-22 05:42:58] [INFO]   -> Found value: 12-21-2025T23:42:20
[2025-12-22 05:42:58] [INFO] Reformatted DD-MM-YYYY date '12-21-2025' (day=12, month=21) to ISO: 2025-21-12T23:42:20
[2025-12-22 05:42:58] [ERROR] Error formatting datetime '2025-21-12T23:42:20': Failed to parse time string (2025-21-12T23:42:20) at position 6 (1): Unexpected character
[2025-12-22 05:42:58] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 05:42:58] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-22 05:42:58] [INFO]   -> Found value: 12-21-2025T22:31:16
[2025-12-22 05:42:58] [INFO] Reformatted DD-MM-YYYY date '12-21-2025' (day=12, month=21) to ISO: 2025-21-12T22:31:16
[2025-12-22 05:42:58] [ERROR] Error formatting datetime '2025-21-12T22:31:16': Failed to parse time string (2025-21-12T22:31:16) at position 6 (1): Unexpected character
[2025-12-22 05:42:58] [INFO]   -> Set field 'timedispatch' = null
[2025-12-22 05:42:58] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-22 05:42:58] [INFO]   -> Found value: SDPSFD
[2025-12-22 05:42:58] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2025-12-22 05:42:58] [INFO] Finished extracting fields. Total fields extracted: 23
[2025-12-22 05:42:58] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-22 05:42:58] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-30537","cADNumber":"25-30537","incidentLocationStreetNumber":1008,"streetName":"N MAIN ST","incidentLocationCity":"SIKESTON","businessName":"MDMC","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-AIRCRAFT STANDBY","dispatchNotes":"12-21-2025 22:29:24|ETA 15 MINS  12-21-2025 22:31:57|STATION 3 COPY PAGE 12-21-2025 22:57:58|CREW ON BROAD ENROUTE TO ER 12-21-2025 22:58:34|ARIVE AT ER 1.2","cADLog":"12-21-2025 22:29:24|ETA 15 MINS  12-21-2025 22:31:57|STATION 3 COPY PAGE 12-21-2025 22:57:58|CREW ON BROAD ENROUTE TO ER 12-21-2025 22:58:34|ARIVE AT ER 1.2","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"SIK STILL","name":"SIK STILL","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2025-12-22 05:42:58] [INFO] Number of extracted fields: 24
[2025-12-22 05:42:58] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2025-12-22 05:42:58] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Assigned Agencies count = 2
[2025-12-22 05:42:58] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2025-12-22 05:42:58] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (position 1)
[2025-12-22 05:42:58] [INFO] Found SAASClient match: ID = 6772cab7157b2ebde, Name = Sikeston DPS for AgencyCode 'SDPSFD'
[2025-12-22 05:42:58] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) based on AgencyCode 'SDPSFD'
[2025-12-22 05:42:58] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-22 05:42:58] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-22 05:42:58] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2025-12-22 05:42:58] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e875662f9c
[2025-12-22 05:43:00] [INFO] Created new Dispatches record with ID: 6948da62b1f079148
[2025-12-22 05:43:00] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-30537.xml
[2025-12-22 05:43:00] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-30537.xml
[2025-12-22 10:36:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053652462.xml
[2025-12-22 10:36:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053652462.xml for user: 68920395733981a47
[2025-12-22 10:36:52] [INFO] File size: 5003 bytes
[2025-12-22 10:36:53] [INFO] Created FTPFiles record with ID: 69491f451e3ddcc93
[2025-12-22 10:36:53] [INFO] About to extract fields from XML. File size: 5003 bytes
[2025-12-22 10:36:53] [INFO] Number of mappings: 23
[2025-12-22 10:36:53] [INFO] Starting XML parsing. Content length: 5003
[2025-12-22 10:36:53] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:36:53] [INFO] Processing 23 field mappings
[2025-12-22 10:36:53] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:36:53] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:36:53] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:36:53] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:36:53] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:36:53] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:36:53] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:36:53] [INFO]   -> Found value: 37379
[2025-12-22 10:36:53] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:36:53] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:36:53] [INFO]   -> Found value: 10558
[2025-12-22 10:36:53] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:36:53] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:36:53] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:36:53] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:36:53] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:36:53] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:36:53] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:36:53] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:36:53] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:36:53] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:36:53] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:36:53] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:36:53] [INFO]   -> Set field 'enroute' = null
[2025-12-22 10:36:53] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:36:53] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:36:53] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:36:53] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:36:53] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:36:53] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:36:53] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:36:53] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:36:53] [INFO]   -> Found value: 35.254584
[2025-12-22 10:36:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:36:53] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:36:53] [INFO]   -> Found value: -85.142637
[2025-12-22 10:36:53] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:36:53] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:36:53] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:36:53] [INFO]   -> Set field 'dispatched' = null
[2025-12-22 10:36:53] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:36:53] [INFO]   -> No value found (null or empty)
[2025-12-22 10:36:53] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:36:53] [INFO]   -> No value found (null or empty)
[2025-12-22 10:36:53] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:36:53] [INFO]   -> No value found (null or empty)
[2025-12-22 10:36:53] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:36:53] [INFO]   -> No value found (null or empty)
[2025-12-22 10:36:53] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:36:53] [INFO]   -> No value found (null or empty)
[2025-12-22 10:36:53] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:36:53] [INFO]   -> No value found (null or empty)
[2025-12-22 10:36:53] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:36:53] [INFO]   -> Found value: DR
[2025-12-22 10:36:53] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:36:53] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:36:53] [INFO]   -> No value found (null or empty)
[2025-12-22 10:36:53] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:36:53] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:36:53] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:36:53] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:36:53] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:36:53] [INFO]   -> No value found (null or empty)
[2025-12-22 10:36:53] [INFO] Finished extracting fields. Total fields extracted: 17
[2025-12-22 10:36:53] [INFO] Concatenating street name and type
[2025-12-22 10:36:53] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:36:53] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:36:53] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":null,"onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":null,"policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:36:53] [INFO] Number of extracted fields: 17
[2025-12-22 10:36:53] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:36:53] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:36:53] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:36:53] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:36:53] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:36:53] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:37:02] [INFO] Created new Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:37:02] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053652462.xml
[2025-12-22 10:37:02] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053652462.xml
[2025-12-22 10:37:02] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053657540.xml
[2025-12-22 10:37:02] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053657540.xml for user: 68920395733981a47
[2025-12-22 10:37:02] [INFO] File size: 5098 bytes
[2025-12-22 10:37:02] [INFO] Created FTPFiles record with ID: 69491f4e8784311bd
[2025-12-22 10:37:02] [INFO] About to extract fields from XML. File size: 5098 bytes
[2025-12-22 10:37:02] [INFO] Number of mappings: 23
[2025-12-22 10:37:02] [INFO] Starting XML parsing. Content length: 5098
[2025-12-22 10:37:02] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:37:02] [INFO] Processing 23 field mappings
[2025-12-22 10:37:02] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:37:02] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:37:02] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:37:02] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:37:02] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:37:02] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:37:02] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:37:02] [INFO]   -> Found value: 37379
[2025-12-22 10:37:02] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:37:02] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:37:02] [INFO]   -> Found value: 10558
[2025-12-22 10:37:02] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:37:02] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:37:02] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:37:02] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:37:02] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:37:02] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:37:02] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:37:02] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:37:02] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:37:02] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:37:02] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:37:02] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:02] [INFO]   -> Set field 'enroute' = null
[2025-12-22 10:37:02] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:37:02] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:02] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:37:02] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:37:02] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:02] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:37:02] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:37:02] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:37:02] [INFO]   -> Found value: 35.254584
[2025-12-22 10:37:02] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:37:02] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:37:02] [INFO]   -> Found value: -85.142637
[2025-12-22 10:37:02] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:37:02] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:37:02] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:02] [INFO]   -> Set field 'dispatched' = null
[2025-12-22 10:37:02] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:37:02] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:02] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:37:02] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:02] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:37:02] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:02] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:37:02] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:02] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:37:02] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:02] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:37:02] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:02] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:37:02] [INFO]   -> Found value: DR
[2025-12-22 10:37:02] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:37:02] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:37:02] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:02] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:37:02] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:37:02] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:37:02] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:37:02] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:37:02] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
[2025-12-22 10:37:02] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF"
[2025-12-22 10:37:02] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF"
[2025-12-22 10:37:02] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-22 10:37:02] [INFO] Concatenating street name and type
[2025-12-22 10:37:02] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:37:02] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:37:02] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":null,"onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":null,"policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:37:02] [INFO] Number of extracted fields: 19
[2025-12-22 10:37:02] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:37:02] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:37:02] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:37:02] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:37:02] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:37:02] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:37:02] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:37:03] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:37:03] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053657540.xml
[2025-12-22 10:37:03] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053657540.xml
[2025-12-22 10:37:12] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053712712.xml
[2025-12-22 10:37:12] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053712712.xml for user: 68920395733981a47
[2025-12-22 10:37:12] [INFO] File size: 5196 bytes
[2025-12-22 10:37:13] [INFO] Created FTPFiles record with ID: 69491f5921ac12811
[2025-12-22 10:37:13] [INFO] About to extract fields from XML. File size: 5196 bytes
[2025-12-22 10:37:13] [INFO] Number of mappings: 23
[2025-12-22 10:37:13] [INFO] Starting XML parsing. Content length: 5196
[2025-12-22 10:37:13] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:37:13] [INFO] Processing 23 field mappings
[2025-12-22 10:37:13] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:37:13] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:37:13] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:37:13] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:37:13] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:37:13] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:37:13] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:37:13] [INFO]   -> Found value: 37379
[2025-12-22 10:37:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:37:13] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:37:13] [INFO]   -> Found value: 10558
[2025-12-22 10:37:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:37:13] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:37:13] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:37:13] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:37:13] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:37:13] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:37:13] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:37:13] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:37:13] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:37:13] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:37:13] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:37:13] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:13] [INFO]   -> Set field 'enroute' = null
[2025-12-22 10:37:13] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:37:13] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:13] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:37:13] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:37:13] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:13] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:37:13] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:37:13] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:37:13] [INFO]   -> Found value: 35.254584
[2025-12-22 10:37:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:37:13] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:37:13] [INFO]   -> Found value: -85.142637
[2025-12-22 10:37:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:37:13] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:37:13] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:13] [INFO]   -> Set field 'dispatched' = null
[2025-12-22 10:37:13] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:37:13] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:13] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:37:13] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:13] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:37:13] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:13] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:37:13] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:13] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:37:13] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:13] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:37:13] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:13] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:37:13] [INFO]   -> Found value: DR
[2025-12-22 10:37:13] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:37:13] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:37:13] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:13] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:37:13] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:37:13] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:37:13] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:37:13] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:37:13] [INFO] Found 2 elements for 'Comment', concatenating 2 non-empty values
[2025-12-22 10:37:13] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:37:13] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM"
[2025-12-22 10:37:13] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM"
[2025-12-22 10:37:13] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-22 10:37:13] [INFO] Concatenating street name and type
[2025-12-22 10:37:13] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:37:13] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:37:13] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":null,"onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":null,"policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:37:13] [INFO] Number of extracted fields: 19
[2025-12-22 10:37:13] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:37:13] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:37:13] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:37:13] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:37:13] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:37:13] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:37:13] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:37:13] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:37:13] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053712712.xml
[2025-12-22 10:37:13] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053712712.xml
[2025-12-22 10:37:17] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053717743.xml
[2025-12-22 10:37:17] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053717743.xml for user: 68920395733981a47
[2025-12-22 10:37:17] [INFO] File size: 5287 bytes
[2025-12-22 10:37:18] [INFO] Created FTPFiles record with ID: 69491f5e1a804dee9
[2025-12-22 10:37:18] [INFO] About to extract fields from XML. File size: 5287 bytes
[2025-12-22 10:37:18] [INFO] Number of mappings: 23
[2025-12-22 10:37:18] [INFO] Starting XML parsing. Content length: 5287
[2025-12-22 10:37:18] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:37:18] [INFO] Processing 23 field mappings
[2025-12-22 10:37:18] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:37:18] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:37:18] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:37:18] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:37:18] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:37:18] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:37:18] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:37:18] [INFO]   -> Found value: 37379
[2025-12-22 10:37:18] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:37:18] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:37:18] [INFO]   -> Found value: 10558
[2025-12-22 10:37:18] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:37:18] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:37:18] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:37:18] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:37:18] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:37:18] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:37:18] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:37:18] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:37:18] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:37:18] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:37:18] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:37:18] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:18] [INFO]   -> Set field 'enroute' = null
[2025-12-22 10:37:18] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:37:18] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:18] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:37:18] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:37:18] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:18] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:37:18] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:37:18] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:37:18] [INFO]   -> Found value: 35.254584
[2025-12-22 10:37:18] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:37:18] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:37:18] [INFO]   -> Found value: -85.142637
[2025-12-22 10:37:18] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:37:18] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:37:18] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:18] [INFO]   -> Set field 'dispatched' = null
[2025-12-22 10:37:18] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:37:18] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:18] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:37:18] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:18] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:37:18] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:18] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:37:18] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:18] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:37:18] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:18] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:37:18] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:18] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:37:18] [INFO]   -> Found value: DR
[2025-12-22 10:37:18] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:37:18] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:37:18] [INFO]   -> No value found (null or empty)
[2025-12-22 10:37:18] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:37:18] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:37:18] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:37:18] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:37:18] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:37:18] [INFO] Found 3 elements for 'Comment', concatenating 3 non-empty values
[2025-12-22 10:37:18] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:37:18] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH"
[2025-12-22 10:37:18] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH"
[2025-12-22 10:37:18] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-22 10:37:18] [INFO] Concatenating street name and type
[2025-12-22 10:37:18] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:37:18] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:37:18] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":null,"onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":null,"policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:37:18] [INFO] Number of extracted fields: 19
[2025-12-22 10:37:18] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:37:18] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:37:18] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:37:18] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:37:18] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:37:18] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:37:18] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:37:18] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:37:18] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053717743.xml
[2025-12-22 10:37:18] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053717743.xml
[2025-12-22 10:37:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053727845.xml
[2025-12-22 10:37:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053727845.xml for user: 68920395733981a47
[2025-12-22 10:37:27] [INFO] File size: 8340 bytes
[2025-12-22 10:37:28] [INFO] Created FTPFiles record with ID: 69491f6836d752502
[2025-12-22 10:37:28] [INFO] About to extract fields from XML. File size: 8340 bytes
[2025-12-22 10:37:28] [INFO] Number of mappings: 23
[2025-12-22 10:37:28] [INFO] Starting XML parsing. Content length: 8340
[2025-12-22 10:37:28] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:37:28] [INFO] Processing 23 field mappings
[2025-12-22 10:37:28] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:37:28] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:37:28] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:37:28] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:37:28] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:37:28] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:37:28] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:37:28] [INFO]   -> Found value: 37379
[2025-12-22 10:37:28] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:37:28] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:37:28] [INFO]   -> Found value: 10558
[2025-12-22 10:37:28] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:37:28] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:37:28] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:37:28] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:37:28] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:37:28] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:37:28] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:37:28] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:37:28] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:37:28] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:37:28] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:37:28] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:28] [INFO]   -> Set field 'enroute' = null
[2025-12-22 10:37:28] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:37:28] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:28] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:37:28] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:37:28] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:28] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:37:28] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:37:28] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:37:28] [INFO]   -> Found value: 35.254584
[2025-12-22 10:37:28] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:37:28] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:37:28] [INFO]   -> Found value: -85.142637
[2025-12-22 10:37:28] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:37:28] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:37:28] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:37:28] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:37:28] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:37:28] [INFO]   -> Found value: H1700
[2025-12-22 10:37:28] [INFO]   -> Set field 'cADVehicleID' = "H1700"
[2025-12-22 10:37:28] [INFO]   -> Set field 'name' = "H1700"
[2025-12-22 10:37:28] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:37:28] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:28] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:37:28] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:37:28] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:28] [INFO]   -> Set field 'timeonscene' = null
[2025-12-22 10:37:28] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:37:28] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:28] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:37:28] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:37:28] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:28] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-22 10:37:28] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:37:28] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:37:28] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:37:23"
[2025-12-22 10:37:28] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:37:28] [INFO]   -> Found value: DR
[2025-12-22 10:37:28] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:37:28] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:37:28] [INFO]   -> Found value: 25-000071
[2025-12-22 10:37:28] [INFO]   -> Set field 'incidentInternalId' = "25-000071"
[2025-12-22 10:37:28] [INFO]   -> Set field 'dispatchRunNumber' = "25-000071"
[2025-12-22 10:37:28] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:37:28] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:37:28] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:37:28] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:37:28] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:37:28] [INFO] Found 4 elements for 'Comment', concatenating 4 non-empty values
[2025-12-22 10:37:28] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:37:28] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700."
[2025-12-22 10:37:28] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700."
[2025-12-22 10:37:28] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:37:28] [INFO] Concatenating street name and type
[2025-12-22 10:37:28] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:37:28] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:37:28] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":null,"onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"H1700","name":"H1700","timeunitclear":null,"timeonscene":null,"timestaging":null,"timeenroutetoscene":null,"timedispatch":"2025-12-22 10:37:23","incidentInternalId":"25-000071","dispatchRunNumber":"25-000071","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:37:28] [INFO] Number of extracted fields: 28
[2025-12-22 10:37:28] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:37:28] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:37:28] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:37:28] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:37:28] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:37:28] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:37:28] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:37:28] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:37:28] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053727845.xml
[2025-12-22 10:37:28] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053727845.xml
[2025-12-22 10:37:53] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053753064.xml
[2025-12-22 10:37:53] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053753064.xml for user: 68920395733981a47
[2025-12-22 10:37:53] [INFO] File size: 8450 bytes
[2025-12-22 10:37:53] [INFO] Created FTPFiles record with ID: 69491f816aab7d476
[2025-12-22 10:37:53] [INFO] About to extract fields from XML. File size: 8450 bytes
[2025-12-22 10:37:53] [INFO] Number of mappings: 23
[2025-12-22 10:37:53] [INFO] Starting XML parsing. Content length: 8450
[2025-12-22 10:37:53] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:37:53] [INFO] Processing 23 field mappings
[2025-12-22 10:37:53] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:37:53] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:37:53] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:37:53] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:37:53] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:37:53] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:37:53] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:37:53] [INFO]   -> Found value: 37379
[2025-12-22 10:37:53] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:37:53] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:37:53] [INFO]   -> Found value: 10558
[2025-12-22 10:37:53] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:37:53] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:37:53] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:37:53] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:37:53] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:37:53] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:37:53] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:37:53] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:37:53] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:37:53] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:37:53] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:37:53] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:53] [INFO]   -> Set field 'enroute' = null
[2025-12-22 10:37:53] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:37:53] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:53] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:37:53] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:37:53] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:53] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:37:53] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:37:53] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:37:53] [INFO]   -> Found value: 35.254584
[2025-12-22 10:37:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:37:53] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:37:53] [INFO]   -> Found value: -85.142637
[2025-12-22 10:37:53] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:37:53] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:37:53] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:37:53] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:37:53] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:37:53] [INFO]   -> Found value: H1700
[2025-12-22 10:37:53] [INFO]   -> Set field 'cADVehicleID' = "H1700"
[2025-12-22 10:37:53] [INFO]   -> Set field 'name' = "H1700"
[2025-12-22 10:37:53] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:37:53] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:53] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:37:53] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:37:53] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:53] [INFO]   -> Set field 'timeonscene' = null
[2025-12-22 10:37:53] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:37:53] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:53] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:37:53] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:37:53] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:37:53] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-22 10:37:53] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:37:53] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:37:53] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:37:23"
[2025-12-22 10:37:53] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:37:53] [INFO]   -> Found value: DR
[2025-12-22 10:37:53] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:37:53] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:37:53] [INFO]   -> Found value: 25-000071
[2025-12-22 10:37:53] [INFO]   -> Set field 'incidentInternalId' = "25-000071"
[2025-12-22 10:37:53] [INFO]   -> Set field 'dispatchRunNumber' = "25-000071"
[2025-12-22 10:37:53] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:37:53] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:37:53] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:37:53] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:37:53] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:37:53] [INFO] Found 5 elements for 'Comment', concatenating 5 non-empty values
[2025-12-22 10:37:53] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:37:53] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL"
[2025-12-22 10:37:53] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL"
[2025-12-22 10:37:53] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:37:53] [INFO] Concatenating street name and type
[2025-12-22 10:37:53] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:37:53] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:37:53] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":null,"onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"H1700","name":"H1700","timeunitclear":null,"timeonscene":null,"timestaging":null,"timeenroutetoscene":null,"timedispatch":"2025-12-22 10:37:23","incidentInternalId":"25-000071","dispatchRunNumber":"25-000071","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:37:53] [INFO] Number of extracted fields: 28
[2025-12-22 10:37:53] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:37:53] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:37:53] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:37:53] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:37:53] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:37:53] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:37:53] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:37:53] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:37:53] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053753064.xml
[2025-12-22 10:37:53] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053753064.xml
[2025-12-22 10:38:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053808210.xml
[2025-12-22 10:38:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053808210.xml for user: 68920395733981a47
[2025-12-22 10:38:08] [INFO] File size: 8556 bytes
[2025-12-22 10:38:08] [INFO] Created FTPFiles record with ID: 69491f9091b615f9e
[2025-12-22 10:38:08] [INFO] About to extract fields from XML. File size: 8556 bytes
[2025-12-22 10:38:08] [INFO] Number of mappings: 23
[2025-12-22 10:38:08] [INFO] Starting XML parsing. Content length: 8556
[2025-12-22 10:38:08] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:38:08] [INFO] Processing 23 field mappings
[2025-12-22 10:38:08] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:38:08] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:38:08] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:38:08] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:38:08] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:38:08] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:38:08] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:38:08] [INFO]   -> Found value: 37379
[2025-12-22 10:38:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:38:08] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:38:08] [INFO]   -> Found value: 10558
[2025-12-22 10:38:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:38:08] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:38:08] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:38:08] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:38:08] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:38:08] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:38:08] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:38:08] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:38:08] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:38:08] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:38:08] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:38:08] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:38:08] [INFO]   -> Set field 'enroute' = null
[2025-12-22 10:38:08] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:38:08] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:38:08] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:38:08] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:38:08] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:38:08] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:38:08] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:38:08] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:38:08] [INFO]   -> Found value: 35.254584
[2025-12-22 10:38:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:38:08] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:38:08] [INFO]   -> Found value: -85.142637
[2025-12-22 10:38:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:38:08] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:38:08] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:38:08] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:38:08] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:38:08] [INFO]   -> Found value: H1700
[2025-12-22 10:38:08] [INFO]   -> Set field 'cADVehicleID' = "H1700"
[2025-12-22 10:38:08] [INFO]   -> Set field 'name' = "H1700"
[2025-12-22 10:38:08] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:38:08] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:38:08] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:38:08] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:38:08] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:38:08] [INFO]   -> Set field 'timeonscene' = null
[2025-12-22 10:38:08] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:38:08] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:38:08] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:38:08] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:38:08] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:38:08] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-22 10:38:08] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:38:08] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:38:08] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:37:23"
[2025-12-22 10:38:08] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:38:08] [INFO]   -> Found value: DR
[2025-12-22 10:38:08] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:38:08] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:38:08] [INFO]   -> Found value: 25-000071
[2025-12-22 10:38:08] [INFO]   -> Set field 'incidentInternalId' = "25-000071"
[2025-12-22 10:38:08] [INFO]   -> Set field 'dispatchRunNumber' = "25-000071"
[2025-12-22 10:38:08] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:38:08] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:38:08] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:38:08] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:38:08] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:38:08] [INFO] Found 6 elements for 'Comment', concatenating 6 non-empty values
[2025-12-22 10:38:08] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:38:08] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***"
[2025-12-22 10:38:08] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***"
[2025-12-22 10:38:08] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:38:08] [INFO] Concatenating street name and type
[2025-12-22 10:38:08] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:38:08] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:38:08] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":null,"onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"H1700","name":"H1700","timeunitclear":null,"timeonscene":null,"timestaging":null,"timeenroutetoscene":null,"timedispatch":"2025-12-22 10:37:23","incidentInternalId":"25-000071","dispatchRunNumber":"25-000071","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:38:08] [INFO] Number of extracted fields: 28
[2025-12-22 10:38:08] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:38:08] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:38:08] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:38:08] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:38:08] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:38:08] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:38:08] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:38:09] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:38:09] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053808210.xml
[2025-12-22 10:38:09] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053808210.xml
[2025-12-22 10:39:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053908800.xml
[2025-12-22 10:39:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053908800.xml for user: 68920395733981a47
[2025-12-22 10:39:08] [INFO] File size: 8699 bytes
[2025-12-22 10:39:09] [INFO] Created FTPFiles record with ID: 69491fcd306f0b7bf
[2025-12-22 10:39:09] [INFO] About to extract fields from XML. File size: 8699 bytes
[2025-12-22 10:39:09] [INFO] Number of mappings: 23
[2025-12-22 10:39:09] [INFO] Starting XML parsing. Content length: 8699
[2025-12-22 10:39:09] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:39:09] [INFO] Processing 23 field mappings
[2025-12-22 10:39:09] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:39:09] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:39:09] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:39:09] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:39:09] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:39:09] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:39:09] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:39:09] [INFO]   -> Found value: 37379
[2025-12-22 10:39:09] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:39:09] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:39:09] [INFO]   -> Found value: 10558
[2025-12-22 10:39:09] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:39:09] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:39:09] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:39:09] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:39:09] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:39:09] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:39:09] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:39:09] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:39:09] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:39:09] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:39:09] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:39:09] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:39:09] [INFO]   -> Set field 'enroute' = null
[2025-12-22 10:39:09] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:39:09] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:39:09] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:39:09] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:39:09] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:39:09] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:39:09] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:39:09] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:39:09] [INFO]   -> Found value: 35.254584
[2025-12-22 10:39:09] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:39:09] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:39:09] [INFO]   -> Found value: -85.142637
[2025-12-22 10:39:09] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:39:09] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:39:09] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:39:09] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:39:09] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:39:09] [INFO]   -> Found value: H1700
[2025-12-22 10:39:09] [INFO]   -> Set field 'cADVehicleID' = "H1700"
[2025-12-22 10:39:09] [INFO]   -> Set field 'name' = "H1700"
[2025-12-22 10:39:09] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:39:09] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:39:09] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:39:09] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:39:09] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:39:09] [INFO]   -> Set field 'timeonscene' = null
[2025-12-22 10:39:09] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:39:09] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:39:09] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:39:09] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:39:09] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:39:09] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-22 10:39:09] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:39:09] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:39:09] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:37:23"
[2025-12-22 10:39:09] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:39:09] [INFO]   -> Found value: DR
[2025-12-22 10:39:09] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:39:09] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:39:09] [INFO]   -> Found value: 25-000071
[2025-12-22 10:39:09] [INFO]   -> Set field 'incidentInternalId' = "25-000071"
[2025-12-22 10:39:09] [INFO]   -> Set field 'dispatchRunNumber' = "25-000071"
[2025-12-22 10:39:09] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:39:09] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:39:09] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:39:09] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:39:09] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:39:09] [INFO] Found 7 elements for 'Comment', concatenating 7 non-empty values
[2025-12-22 10:39:09] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:39:09] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY"
[2025-12-22 10:39:09] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY"
[2025-12-22 10:39:09] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:39:09] [INFO] Concatenating street name and type
[2025-12-22 10:39:09] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:39:09] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:39:09] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":null,"onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"H1700","name":"H1700","timeunitclear":null,"timeonscene":null,"timestaging":null,"timeenroutetoscene":null,"timedispatch":"2025-12-22 10:37:23","incidentInternalId":"25-000071","dispatchRunNumber":"25-000071","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:39:09] [INFO] Number of extracted fields: 28
[2025-12-22 10:39:09] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:39:09] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:39:09] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:39:09] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:39:09] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:39:09] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:39:09] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:39:09] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:39:09] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053908800.xml
[2025-12-22 10:39:09] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222053908800.xml
[2025-12-22 10:41:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054105102.xml
[2025-12-22 10:41:05] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054105102.xml for user: 68920395733981a47
[2025-12-22 10:41:05] [INFO] File size: 8881 bytes
[2025-12-22 10:41:05] [INFO] Created FTPFiles record with ID: 694920419d49416c4
[2025-12-22 10:41:05] [INFO] About to extract fields from XML. File size: 8881 bytes
[2025-12-22 10:41:05] [INFO] Number of mappings: 23
[2025-12-22 10:41:05] [INFO] Starting XML parsing. Content length: 8881
[2025-12-22 10:41:05] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:41:05] [INFO] Processing 23 field mappings
[2025-12-22 10:41:05] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:41:05] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:41:05] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:41:05] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:41:05] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:41:05] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:41:05] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:41:05] [INFO]   -> Found value: 37379
[2025-12-22 10:41:05] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:41:05] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:41:05] [INFO]   -> Found value: 10558
[2025-12-22 10:41:05] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:41:05] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:41:05] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:41:05] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:41:05] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:41:05] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:41:05] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:41:05] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:41:05] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:41:05] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:41:05] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:41:05] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:05] [INFO]   -> Set field 'enroute' = null
[2025-12-22 10:41:05] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:41:05] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:05] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:41:05] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:41:05] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:05] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:41:05] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:41:05] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:41:05] [INFO]   -> Found value: 35.254584
[2025-12-22 10:41:05] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:41:05] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:41:05] [INFO]   -> Found value: -85.142637
[2025-12-22 10:41:05] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:41:05] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:41:05] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:41:05] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:41:05] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:41:05] [INFO]   -> Found value: H1700
[2025-12-22 10:41:05] [INFO]   -> Set field 'cADVehicleID' = "H1700"
[2025-12-22 10:41:05] [INFO]   -> Set field 'name' = "H1700"
[2025-12-22 10:41:05] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:41:05] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:05] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:41:05] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:41:05] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:05] [INFO]   -> Set field 'timeonscene' = null
[2025-12-22 10:41:05] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:41:05] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:05] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:41:05] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:41:05] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:05] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-22 10:41:05] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:41:05] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:41:05] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:37:23"
[2025-12-22 10:41:05] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:41:05] [INFO]   -> Found value: DR
[2025-12-22 10:41:05] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:41:05] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:41:05] [INFO]   -> Found value: 25-000071
[2025-12-22 10:41:05] [INFO]   -> Set field 'incidentInternalId' = "25-000071"
[2025-12-22 10:41:05] [INFO]   -> Set field 'dispatchRunNumber' = "25-000071"
[2025-12-22 10:41:05] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:41:05] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:41:05] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:41:05] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:41:05] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:41:05] [INFO] Found 8 elements for 'Comment', concatenating 8 non-empty values
[2025-12-22 10:41:05] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:41:05] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD"
[2025-12-22 10:41:05] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD"
[2025-12-22 10:41:05] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:41:05] [INFO] Concatenating street name and type
[2025-12-22 10:41:05] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:41:05] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:41:05] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":null,"onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"H1700","name":"H1700","timeunitclear":null,"timeonscene":null,"timestaging":null,"timeenroutetoscene":null,"timedispatch":"2025-12-22 10:37:23","incidentInternalId":"25-000071","dispatchRunNumber":"25-000071","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:41:05] [INFO] Number of extracted fields: 28
[2025-12-22 10:41:05] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:41:05] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:41:05] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:41:05] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:41:05] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:41:05] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:41:05] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:41:06] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:41:06] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054105102.xml
[2025-12-22 10:41:06] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054105102.xml
[2025-12-22 10:41:50] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054150634.xml
[2025-12-22 10:41:50] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054150634.xml for user: 68920395733981a47
[2025-12-22 10:41:50] [INFO] File size: 8988 bytes
[2025-12-22 10:41:51] [INFO] Created FTPFiles record with ID: 6949206f06a6fb5f6
[2025-12-22 10:41:51] [INFO] About to extract fields from XML. File size: 8988 bytes
[2025-12-22 10:41:51] [INFO] Number of mappings: 23
[2025-12-22 10:41:51] [INFO] Starting XML parsing. Content length: 8988
[2025-12-22 10:41:51] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:41:51] [INFO] Processing 23 field mappings
[2025-12-22 10:41:51] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:41:51] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:41:51] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:41:51] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:41:51] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:41:51] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:41:51] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:41:51] [INFO]   -> Found value: 37379
[2025-12-22 10:41:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:41:51] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:41:51] [INFO]   -> Found value: 10558
[2025-12-22 10:41:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:41:51] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:41:51] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:41:51] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:41:51] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:41:51] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:41:51] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:41:51] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:41:51] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:41:51] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:41:51] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:41:51] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:51] [INFO]   -> Set field 'enroute' = null
[2025-12-22 10:41:51] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:41:51] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:51] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:41:51] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:41:51] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:51] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:41:51] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:41:51] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:41:51] [INFO]   -> Found value: 35.254584
[2025-12-22 10:41:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:41:51] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:41:51] [INFO]   -> Found value: -85.142637
[2025-12-22 10:41:51] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:41:51] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:41:51] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:41:51] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:41:51] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:41:51] [INFO]   -> Found value: H1700
[2025-12-22 10:41:51] [INFO]   -> Set field 'cADVehicleID' = "H1700"
[2025-12-22 10:41:51] [INFO]   -> Set field 'name' = "H1700"
[2025-12-22 10:41:51] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:41:51] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:51] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:41:51] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:41:51] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:51] [INFO]   -> Set field 'timeonscene' = null
[2025-12-22 10:41:51] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:41:51] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:51] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:41:51] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:41:51] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:41:51] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-22 10:41:51] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:41:51] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:41:51] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:37:23"
[2025-12-22 10:41:51] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:41:51] [INFO]   -> Found value: DR
[2025-12-22 10:41:51] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:41:51] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:41:51] [INFO]   -> Found value: 25-000071
[2025-12-22 10:41:51] [INFO]   -> Set field 'incidentInternalId' = "25-000071"
[2025-12-22 10:41:51] [INFO]   -> Set field 'dispatchRunNumber' = "25-000071"
[2025-12-22 10:41:51] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:41:51] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:41:51] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:41:51] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:41:51] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:41:51] [INFO] Found 9 elements for 'Comment', concatenating 9 non-empty values
[2025-12-22 10:41:51] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:41:51] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER"
[2025-12-22 10:41:51] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER"
[2025-12-22 10:41:51] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:41:51] [INFO] Concatenating street name and type
[2025-12-22 10:41:51] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:41:51] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:41:51] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":null,"onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"H1700","name":"H1700","timeunitclear":null,"timeonscene":null,"timestaging":null,"timeenroutetoscene":null,"timedispatch":"2025-12-22 10:37:23","incidentInternalId":"25-000071","dispatchRunNumber":"25-000071","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:41:51] [INFO] Number of extracted fields: 28
[2025-12-22 10:41:51] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:41:51] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:41:51] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:41:51] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:41:51] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:41:51] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:41:51] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:41:51] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:41:51] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054150634.xml
[2025-12-22 10:41:51] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054150634.xml
[2025-12-22 10:45:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054512769.xml
[2025-12-22 10:45:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054512769.xml for user: 68920395733981a47
[2025-12-22 10:45:13] [INFO] File size: 9074 bytes
[2025-12-22 10:45:13] [INFO] Created FTPFiles record with ID: 694921396aa40b97b
[2025-12-22 10:45:13] [INFO] About to extract fields from XML. File size: 9074 bytes
[2025-12-22 10:45:13] [INFO] Number of mappings: 23
[2025-12-22 10:45:13] [INFO] Starting XML parsing. Content length: 9074
[2025-12-22 10:45:13] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:45:13] [INFO] Processing 23 field mappings
[2025-12-22 10:45:13] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:45:13] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:45:13] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:45:13] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:45:13] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:45:13] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:45:13] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:45:13] [INFO]   -> Found value: 37379
[2025-12-22 10:45:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:45:13] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:45:13] [INFO]   -> Found value: 10558
[2025-12-22 10:45:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:45:13] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:45:13] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:45:13] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:45:13] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:45:13] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:45:13] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:45:13] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:45:13] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:45:13] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:45:13] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:45:13] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:13] [INFO]   -> Set field 'enroute' = null
[2025-12-22 10:45:13] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:45:13] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:13] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:45:13] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:45:13] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:13] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:45:13] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:45:13] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:45:13] [INFO]   -> Found value: 35.254584
[2025-12-22 10:45:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:45:13] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:45:13] [INFO]   -> Found value: -85.142637
[2025-12-22 10:45:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:45:13] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:45:13] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:45:13] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:45:13] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:45:13] [INFO]   -> Found value: H1700
[2025-12-22 10:45:13] [INFO]   -> Set field 'cADVehicleID' = "H1700"
[2025-12-22 10:45:13] [INFO]   -> Set field 'name' = "H1700"
[2025-12-22 10:45:13] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:45:13] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:13] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:45:13] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:45:13] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:13] [INFO]   -> Set field 'timeonscene' = null
[2025-12-22 10:45:13] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:45:13] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:13] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:45:13] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:45:13] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:13] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-22 10:45:13] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:45:13] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:45:13] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:37:23"
[2025-12-22 10:45:13] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:45:13] [INFO]   -> Found value: DR
[2025-12-22 10:45:13] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:45:13] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:45:13] [INFO]   -> Found value: 25-000071
[2025-12-22 10:45:13] [INFO]   -> Set field 'incidentInternalId' = "25-000071"
[2025-12-22 10:45:13] [INFO]   -> Set field 'dispatchRunNumber' = "25-000071"
[2025-12-22 10:45:13] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:45:13] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:45:13] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:45:13] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:45:13] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:45:13] [INFO] Found 10 elements for 'Comment', concatenating 10 non-empty values
[2025-12-22 10:45:13] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:45:13] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD"
[2025-12-22 10:45:13] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD"
[2025-12-22 10:45:13] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:45:13] [INFO] Concatenating street name and type
[2025-12-22 10:45:13] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:45:13] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:45:13] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":null,"onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"H1700","name":"H1700","timeunitclear":null,"timeonscene":null,"timestaging":null,"timeenroutetoscene":null,"timedispatch":"2025-12-22 10:37:23","incidentInternalId":"25-000071","dispatchRunNumber":"25-000071","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:45:13] [INFO] Number of extracted fields: 28
[2025-12-22 10:45:13] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:45:13] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:45:13] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:45:13] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:45:13] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:45:13] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:45:13] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:45:13] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:45:13] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054512769.xml
[2025-12-22 10:45:13] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054512769.xml
[2025-12-22 10:45:48] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054548129.xml
[2025-12-22 10:45:48] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054548129.xml for user: 68920395733981a47
[2025-12-22 10:45:48] [INFO] File size: 9160 bytes
[2025-12-22 10:45:49] [INFO] Created FTPFiles record with ID: 6949215dd7f980279
[2025-12-22 10:45:49] [INFO] About to extract fields from XML. File size: 9160 bytes
[2025-12-22 10:45:49] [INFO] Number of mappings: 23
[2025-12-22 10:45:49] [INFO] Starting XML parsing. Content length: 9160
[2025-12-22 10:45:49] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:45:49] [INFO] Processing 23 field mappings
[2025-12-22 10:45:49] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:45:49] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:45:49] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:45:49] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:45:49] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:45:49] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:45:49] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:45:49] [INFO]   -> Found value: 37379
[2025-12-22 10:45:49] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:45:49] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:45:49] [INFO]   -> Found value: 10558
[2025-12-22 10:45:49] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:45:49] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:45:49] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:45:49] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:45:49] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:45:49] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:45:49] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:45:49] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:45:49] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:45:49] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:45:49] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:45:49] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:49] [INFO]   -> Set field 'enroute' = null
[2025-12-22 10:45:49] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:45:49] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:49] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:45:49] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:45:49] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:49] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:45:49] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:45:49] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:45:49] [INFO]   -> Found value: 35.254584
[2025-12-22 10:45:49] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:45:49] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:45:49] [INFO]   -> Found value: -85.142637
[2025-12-22 10:45:49] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:45:49] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:45:49] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:45:49] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:45:49] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:45:49] [INFO]   -> Found value: H1700
[2025-12-22 10:45:49] [INFO]   -> Set field 'cADVehicleID' = "H1700"
[2025-12-22 10:45:49] [INFO]   -> Set field 'name' = "H1700"
[2025-12-22 10:45:49] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:45:49] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:49] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:45:49] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:45:49] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:49] [INFO]   -> Set field 'timeonscene' = null
[2025-12-22 10:45:49] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:45:49] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:49] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:45:49] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:45:49] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:45:49] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-22 10:45:49] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:45:49] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:45:49] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:37:23"
[2025-12-22 10:45:49] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:45:49] [INFO]   -> Found value: DR
[2025-12-22 10:45:49] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:45:49] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:45:49] [INFO]   -> Found value: 25-000071
[2025-12-22 10:45:49] [INFO]   -> Set field 'incidentInternalId' = "25-000071"
[2025-12-22 10:45:49] [INFO]   -> Set field 'dispatchRunNumber' = "25-000071"
[2025-12-22 10:45:49] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:45:49] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:45:49] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:45:49] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:45:49] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:45:49] [INFO] Found 11 elements for 'Comment', concatenating 11 non-empty values
[2025-12-22 10:45:49] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:45:49] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL"
[2025-12-22 10:45:49] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL"
[2025-12-22 10:45:49] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:45:49] [INFO] Concatenating street name and type
[2025-12-22 10:45:49] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:45:49] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:45:49] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":null,"onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"H1700","name":"H1700","timeunitclear":null,"timeonscene":null,"timestaging":null,"timeenroutetoscene":null,"timedispatch":"2025-12-22 10:37:23","incidentInternalId":"25-000071","dispatchRunNumber":"25-000071","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:45:49] [INFO] Number of extracted fields: 28
[2025-12-22 10:45:49] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:45:49] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:45:49] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:45:49] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:45:49] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:45:50] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:45:50] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:45:50] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:45:50] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054548129.xml
[2025-12-22 10:45:50] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222054548129.xml
[2025-12-22 10:53:03] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055303243.xml
[2025-12-22 10:53:03] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055303243.xml for user: 68920395733981a47
[2025-12-22 10:53:03] [INFO] File size: 12051 bytes
[2025-12-22 10:53:03] [INFO] Created FTPFiles record with ID: 6949230fc347c6348
[2025-12-22 10:53:03] [INFO] About to extract fields from XML. File size: 12051 bytes
[2025-12-22 10:53:03] [INFO] Number of mappings: 23
[2025-12-22 10:53:03] [INFO] Starting XML parsing. Content length: 12051
[2025-12-22 10:53:03] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:53:03] [INFO] Processing 23 field mappings
[2025-12-22 10:53:03] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:53:03] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:53:03] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:53:03] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:53:03] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:53:03] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:53:03] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:53:03] [INFO]   -> Found value: 37379
[2025-12-22 10:53:03] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:53:03] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:53:03] [INFO]   -> Found value: 10558
[2025-12-22 10:53:03] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:53:03] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:53:03] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:53:03] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:53:03] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:53:03] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:53:03] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:53:03] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:53:03] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:53:03] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:53:03] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:53:03] [INFO]   -> Found value: 2025-12-22T05:53:02.047-05:00
[2025-12-22 10:53:03] [INFO]   -> Set field 'enroute' = "2025-12-22 10:53:02"
[2025-12-22 10:53:03] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:53:03] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:53:03] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:53:03] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:53:03] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:53:03] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:53:03] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:53:03] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:53:03] [INFO]   -> Found value: 35.254584
[2025-12-22 10:53:03] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:53:03] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:53:03] [INFO]   -> Found value: -85.142637
[2025-12-22 10:53:03] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:53:03] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:53:03] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:53:03] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:53:03] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:53:03] [INFO]   -> Found value: S1MF
[2025-12-22 10:53:03] [INFO]   -> Set field 'cADVehicleID' = "S1MF"
[2025-12-22 10:53:03] [INFO]   -> Set field 'name' = "S1MF"
[2025-12-22 10:53:03] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:53:03] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:53:03] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:53:03] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:53:03] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:53:03] [INFO]   -> Set field 'timeonscene' = null
[2025-12-22 10:53:03] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:53:03] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:53:03] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:53:03] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:53:03] [INFO]   -> Found value: 2025-12-22T05:53:02.047-05:00
[2025-12-22 10:53:03] [INFO]   -> Set field 'timeenroutetoscene' = "2025-12-22 10:53:02"
[2025-12-22 10:53:03] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:53:03] [INFO]   -> Found value: 2025-12-22T05:53:02.023-05:00
[2025-12-22 10:53:03] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:53:02"
[2025-12-22 10:53:03] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:53:03] [INFO]   -> Found value: DR
[2025-12-22 10:53:03] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:53:03] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:53:03] [INFO]   -> Found value: 25-000220
[2025-12-22 10:53:03] [INFO]   -> Set field 'incidentInternalId' = "25-000220"
[2025-12-22 10:53:03] [INFO]   -> Set field 'dispatchRunNumber' = "25-000220"
[2025-12-22 10:53:03] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:53:03] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:53:03] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:53:03] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:53:03] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:53:03] [INFO] Found 12 elements for 'Comment', concatenating 12 non-empty values
[2025-12-22 10:53:03] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:53:03] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF."
[2025-12-22 10:53:03] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF."
[2025-12-22 10:53:03] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:53:03] [INFO] Concatenating street name and type
[2025-12-22 10:53:03] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:53:03] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:53:03] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":"2025-12-22 10:53:02","onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"S1MF","name":"S1MF","timeunitclear":null,"timeonscene":null,"timestaging":null,"timeenroutetoscene":"2025-12-22 10:53:02","timedispatch":"2025-12-22 10:53:02","incidentInternalId":"25-000220","dispatchRunNumber":"25-000220","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:53:03] [INFO] Number of extracted fields: 28
[2025-12-22 10:53:03] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:53:03] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:53:03] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:53:03] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:53:03] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:53:03] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:53:04] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:53:04] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:53:04] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055303243.xml
[2025-12-22 10:53:04] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055303243.xml
[2025-12-22 10:54:24] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055424293.xml
[2025-12-22 10:54:24] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055424293.xml for user: 68920395733981a47
[2025-12-22 10:54:24] [INFO] File size: 12135 bytes
[2025-12-22 10:54:24] [INFO] Created FTPFiles record with ID: 69492360d089070f7
[2025-12-22 10:54:24] [INFO] About to extract fields from XML. File size: 12135 bytes
[2025-12-22 10:54:24] [INFO] Number of mappings: 23
[2025-12-22 10:54:24] [INFO] Starting XML parsing. Content length: 12135
[2025-12-22 10:54:24] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:54:24] [INFO] Processing 23 field mappings
[2025-12-22 10:54:24] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:54:24] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:54:24] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:54:24] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:54:24] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:54:24] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:54:24] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:54:24] [INFO]   -> Found value: 37379
[2025-12-22 10:54:24] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:54:24] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:54:24] [INFO]   -> Found value: 10558
[2025-12-22 10:54:24] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:54:24] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:54:24] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:54:24] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:54:24] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:54:24] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:54:24] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:54:24] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:54:24] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:54:24] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:54:24] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:54:24] [INFO]   -> Found value: 2025-12-22T05:53:02.047-05:00
[2025-12-22 10:54:24] [INFO]   -> Set field 'enroute' = "2025-12-22 10:53:02"
[2025-12-22 10:54:24] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:54:24] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:54:24] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:54:24] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:54:24] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:54:24] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:54:24] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:54:24] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:54:24] [INFO]   -> Found value: 35.254584
[2025-12-22 10:54:24] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:54:24] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:54:24] [INFO]   -> Found value: -85.142637
[2025-12-22 10:54:24] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:54:24] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:54:24] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:54:24] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:54:24] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:54:24] [INFO]   -> Found value: S1MF
[2025-12-22 10:54:24] [INFO]   -> Set field 'cADVehicleID' = "S1MF"
[2025-12-22 10:54:24] [INFO]   -> Set field 'name' = "S1MF"
[2025-12-22 10:54:24] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:54:24] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:54:24] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:54:24] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:54:24] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:54:24] [INFO]   -> Set field 'timeonscene' = null
[2025-12-22 10:54:24] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:54:24] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:54:24] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:54:24] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:54:24] [INFO]   -> Found value: 2025-12-22T05:53:02.047-05:00
[2025-12-22 10:54:24] [INFO]   -> Set field 'timeenroutetoscene' = "2025-12-22 10:53:02"
[2025-12-22 10:54:24] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:54:24] [INFO]   -> Found value: 2025-12-22T05:53:02.023-05:00
[2025-12-22 10:54:24] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:53:02"
[2025-12-22 10:54:24] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:54:24] [INFO]   -> Found value: DR
[2025-12-22 10:54:24] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:54:24] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:54:24] [INFO]   -> Found value: 25-000220
[2025-12-22 10:54:24] [INFO]   -> Set field 'incidentInternalId' = "25-000220"
[2025-12-22 10:54:24] [INFO]   -> Set field 'dispatchRunNumber' = "25-000220"
[2025-12-22 10:54:24] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:54:24] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:54:24] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:54:24] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:54:24] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:54:24] [INFO] Found 13 elements for 'Comment', concatenating 13 non-empty values
[2025-12-22 10:54:24] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:54:24] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING"
[2025-12-22 10:54:24] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING"
[2025-12-22 10:54:24] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:54:24] [INFO] Concatenating street name and type
[2025-12-22 10:54:24] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:54:24] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:54:24] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":"2025-12-22 10:53:02","onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"S1MF","name":"S1MF","timeunitclear":null,"timeonscene":null,"timestaging":null,"timeenroutetoscene":"2025-12-22 10:53:02","timedispatch":"2025-12-22 10:53:02","incidentInternalId":"25-000220","dispatchRunNumber":"25-000220","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:54:24] [INFO] Number of extracted fields: 28
[2025-12-22 10:54:24] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:54:24] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:54:24] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:54:24] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:54:24] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:54:25] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:54:25] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:54:25] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:54:25] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055424293.xml
[2025-12-22 10:54:25] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055424293.xml
[2025-12-22 10:54:29] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055429340.xml
[2025-12-22 10:54:29] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055429340.xml for user: 68920395733981a47
[2025-12-22 10:54:29] [INFO] File size: 12215 bytes
[2025-12-22 10:54:29] [INFO] Created FTPFiles record with ID: 69492365ad0146ed5
[2025-12-22 10:54:29] [INFO] About to extract fields from XML. File size: 12215 bytes
[2025-12-22 10:54:29] [INFO] Number of mappings: 23
[2025-12-22 10:54:29] [INFO] Starting XML parsing. Content length: 12215
[2025-12-22 10:54:29] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:54:29] [INFO] Processing 23 field mappings
[2025-12-22 10:54:29] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:54:29] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:54:29] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:54:29] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:54:29] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:54:29] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:54:29] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:54:29] [INFO]   -> Found value: 37379
[2025-12-22 10:54:29] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:54:29] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:54:29] [INFO]   -> Found value: 10558
[2025-12-22 10:54:29] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:54:29] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:54:29] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:54:29] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:54:29] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:54:29] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:54:29] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:54:29] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:54:29] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:54:29] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:54:29] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:54:29] [INFO]   -> Found value: 2025-12-22T05:53:02.047-05:00
[2025-12-22 10:54:29] [INFO]   -> Set field 'enroute' = "2025-12-22 10:53:02"
[2025-12-22 10:54:29] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:54:29] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:54:29] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:54:29] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:54:29] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:54:29] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:54:29] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:54:29] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:54:29] [INFO]   -> Found value: 35.254584
[2025-12-22 10:54:29] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:54:29] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:54:29] [INFO]   -> Found value: -85.142637
[2025-12-22 10:54:29] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:54:29] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:54:29] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:54:29] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:54:29] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:54:29] [INFO]   -> Found value: S1MF
[2025-12-22 10:54:29] [INFO]   -> Set field 'cADVehicleID' = "S1MF"
[2025-12-22 10:54:29] [INFO]   -> Set field 'name' = "S1MF"
[2025-12-22 10:54:29] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:54:29] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:54:29] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:54:29] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:54:29] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:54:29] [INFO]   -> Set field 'timeonscene' = null
[2025-12-22 10:54:29] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:54:29] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:54:29] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:54:29] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:54:29] [INFO]   -> Found value: 2025-12-22T05:53:02.047-05:00
[2025-12-22 10:54:29] [INFO]   -> Set field 'timeenroutetoscene' = "2025-12-22 10:53:02"
[2025-12-22 10:54:29] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:54:29] [INFO]   -> Found value: 2025-12-22T05:53:02.023-05:00
[2025-12-22 10:54:29] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:53:02"
[2025-12-22 10:54:29] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:54:29] [INFO]   -> Found value: DR
[2025-12-22 10:54:29] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:54:29] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:54:29] [INFO]   -> Found value: 25-000220
[2025-12-22 10:54:29] [INFO]   -> Set field 'incidentInternalId' = "25-000220"
[2025-12-22 10:54:29] [INFO]   -> Set field 'dispatchRunNumber' = "25-000220"
[2025-12-22 10:54:29] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:54:29] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:54:29] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:54:29] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:54:29] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:54:29] [INFO] Found 14 elements for 'Comment', concatenating 14 non-empty values
[2025-12-22 10:54:29] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:54:29] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL"
[2025-12-22 10:54:29] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL"
[2025-12-22 10:54:29] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:54:29] [INFO] Concatenating street name and type
[2025-12-22 10:54:29] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:54:29] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:54:29] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":"2025-12-22 10:53:02","onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"S1MF","name":"S1MF","timeunitclear":null,"timeonscene":null,"timestaging":null,"timeenroutetoscene":"2025-12-22 10:53:02","timedispatch":"2025-12-22 10:53:02","incidentInternalId":"25-000220","dispatchRunNumber":"25-000220","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:54:29] [INFO] Number of extracted fields: 28
[2025-12-22 10:54:29] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:54:29] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:54:29] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:54:29] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:54:29] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:54:29] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:54:30] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:54:30] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:54:30] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055429340.xml
[2025-12-22 10:54:30] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055429340.xml
[2025-12-22 10:54:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055459716.xml
[2025-12-22 10:54:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055459716.xml for user: 68920395733981a47
[2025-12-22 10:54:59] [INFO] File size: 12303 bytes
[2025-12-22 10:55:00] [INFO] Created FTPFiles record with ID: 69492384168840e87
[2025-12-22 10:55:00] [INFO] About to extract fields from XML. File size: 12303 bytes
[2025-12-22 10:55:00] [INFO] Number of mappings: 23
[2025-12-22 10:55:00] [INFO] Starting XML parsing. Content length: 12303
[2025-12-22 10:55:00] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:55:00] [INFO] Processing 23 field mappings
[2025-12-22 10:55:00] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:55:00] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:55:00] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:55:00] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:55:00] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:55:00] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:55:00] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:55:00] [INFO]   -> Found value: 37379
[2025-12-22 10:55:00] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:55:00] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:55:00] [INFO]   -> Found value: 10558
[2025-12-22 10:55:00] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:55:00] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:55:00] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:55:00] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:55:00] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:55:00] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:55:00] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:55:00] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:55:00] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:55:00] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:55:00] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:55:00] [INFO]   -> Found value: 2025-12-22T05:53:02.047-05:00
[2025-12-22 10:55:00] [INFO]   -> Set field 'enroute' = "2025-12-22 10:53:02"
[2025-12-22 10:55:00] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:55:00] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:55:00] [INFO]   -> Set field 'onScene' = null
[2025-12-22 10:55:00] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:55:00] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:55:00] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:55:00] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:55:00] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:55:00] [INFO]   -> Found value: 35.254584
[2025-12-22 10:55:00] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:55:00] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:55:00] [INFO]   -> Found value: -85.142637
[2025-12-22 10:55:00] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:55:00] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:55:00] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:55:00] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:55:00] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:55:00] [INFO]   -> Found value: S1MF
[2025-12-22 10:55:00] [INFO]   -> Set field 'cADVehicleID' = "S1MF"
[2025-12-22 10:55:00] [INFO]   -> Set field 'name' = "S1MF"
[2025-12-22 10:55:00] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:55:00] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:55:00] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:55:00] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:55:00] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:55:00] [INFO]   -> Set field 'timeonscene' = null
[2025-12-22 10:55:00] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:55:00] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:55:00] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:55:00] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:55:00] [INFO]   -> Found value: 2025-12-22T05:53:02.047-05:00
[2025-12-22 10:55:00] [INFO]   -> Set field 'timeenroutetoscene' = "2025-12-22 10:53:02"
[2025-12-22 10:55:00] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:55:00] [INFO]   -> Found value: 2025-12-22T05:53:02.023-05:00
[2025-12-22 10:55:00] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:53:02"
[2025-12-22 10:55:00] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:55:00] [INFO]   -> Found value: DR
[2025-12-22 10:55:00] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:55:00] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:55:00] [INFO]   -> Found value: 25-000220
[2025-12-22 10:55:00] [INFO]   -> Set field 'incidentInternalId' = "25-000220"
[2025-12-22 10:55:00] [INFO]   -> Set field 'dispatchRunNumber' = "25-000220"
[2025-12-22 10:55:00] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:55:00] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:55:00] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:55:00] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:55:00] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:55:00] [INFO] Found 15 elements for 'Comment', concatenating 15 non-empty values
[2025-12-22 10:55:00] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:55:00] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL"
[2025-12-22 10:55:00] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL"
[2025-12-22 10:55:00] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:55:00] [INFO] Concatenating street name and type
[2025-12-22 10:55:00] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:55:00] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:55:00] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":"2025-12-22 10:53:02","onScene":null,"cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"S1MF","name":"S1MF","timeunitclear":null,"timeonscene":null,"timestaging":null,"timeenroutetoscene":"2025-12-22 10:53:02","timedispatch":"2025-12-22 10:53:02","incidentInternalId":"25-000220","dispatchRunNumber":"25-000220","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:55:00] [INFO] Number of extracted fields: 28
[2025-12-22 10:55:00] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:55:00] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:55:00] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:55:00] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:55:00] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:55:00] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:55:00] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:55:00] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:55:00] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055459716.xml
[2025-12-22 10:55:00] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055459716.xml
[2025-12-22 10:57:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055746682.xml
[2025-12-22 10:57:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055746682.xml for user: 68920395733981a47
[2025-12-22 10:57:46] [INFO] File size: 14980 bytes
[2025-12-22 10:57:47] [INFO] Created FTPFiles record with ID: 6949242b3f8323b1a
[2025-12-22 10:57:47] [INFO] About to extract fields from XML. File size: 14980 bytes
[2025-12-22 10:57:47] [INFO] Number of mappings: 23
[2025-12-22 10:57:47] [INFO] Starting XML parsing. Content length: 14980
[2025-12-22 10:57:47] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 10:57:47] [INFO] Processing 23 field mappings
[2025-12-22 10:57:47] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 10:57:47] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 10:57:47] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 10:57:47] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 10:57:47] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 10:57:47] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 10:57:47] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 10:57:47] [INFO]   -> Found value: 37379
[2025-12-22 10:57:47] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 10:57:47] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 10:57:47] [INFO]   -> Found value: 10558
[2025-12-22 10:57:47] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 10:57:47] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 10:57:47] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 10:57:47] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 10:57:47] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 10:57:47] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 10:57:47] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 10:57:47] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 10:57:47] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 10:57:47] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 10:57:47] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 10:57:47] [INFO]   -> Found value: 2025-12-22T05:53:02.047-05:00
[2025-12-22 10:57:47] [INFO]   -> Set field 'enroute' = "2025-12-22 10:53:02"
[2025-12-22 10:57:47] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 10:57:47] [INFO]   -> Found value: 2025-12-22T05:57:45.01-05:00
[2025-12-22 10:57:47] [INFO]   -> Set field 'onScene' = "2025-12-22 10:57:45"
[2025-12-22 10:57:47] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 10:57:47] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:57:47] [INFO]   -> Set field 'cleared' = null
[2025-12-22 10:57:47] [INFO]   -> Set field 'inService' = null
[2025-12-22 10:57:47] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 10:57:47] [INFO]   -> Found value: 35.254584
[2025-12-22 10:57:47] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 10:57:47] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 10:57:47] [INFO]   -> Found value: -85.142637
[2025-12-22 10:57:47] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 10:57:47] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 10:57:47] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 10:57:47] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 10:57:47] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 10:57:47] [INFO]   -> Found value: C1SF
[2025-12-22 10:57:47] [INFO]   -> Set field 'cADVehicleID' = "C1SF"
[2025-12-22 10:57:47] [INFO]   -> Set field 'name' = "C1SF"
[2025-12-22 10:57:47] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 10:57:47] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:57:47] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 10:57:47] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 10:57:47] [INFO]   -> Found value: 2025-12-22T05:57:45.01-05:00
[2025-12-22 10:57:47] [INFO]   -> Set field 'timeonscene' = "2025-12-22 10:57:45"
[2025-12-22 10:57:47] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 10:57:47] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 10:57:47] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 10:57:47] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 10:57:47] [INFO]   -> Found value: 2025-12-22T05:57:44.993-05:00
[2025-12-22 10:57:47] [INFO]   -> Set field 'timeenroutetoscene' = "2025-12-22 10:57:44"
[2025-12-22 10:57:47] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 10:57:47] [INFO]   -> Found value: 2025-12-22T05:57:44.977-05:00
[2025-12-22 10:57:47] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:57:44"
[2025-12-22 10:57:47] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 10:57:47] [INFO]   -> Found value: DR
[2025-12-22 10:57:47] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 10:57:47] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 10:57:47] [INFO]   -> Found value: 25-000071
[2025-12-22 10:57:47] [INFO]   -> Set field 'incidentInternalId' = "25-000071"
[2025-12-22 10:57:47] [INFO]   -> Set field 'dispatchRunNumber' = "25-000071"
[2025-12-22 10:57:47] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 10:57:47] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 10:57:47] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 10:57:47] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 10:57:47] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 10:57:47] [INFO] Found 15 elements for 'Comment', concatenating 15 non-empty values
[2025-12-22 10:57:47] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 10:57:47] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL"
[2025-12-22 10:57:47] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL"
[2025-12-22 10:57:47] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 10:57:47] [INFO] Concatenating street name and type
[2025-12-22 10:57:47] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 10:57:47] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 10:57:47] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":"2025-12-22 10:53:02","onScene":"2025-12-22 10:57:45","cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"C1SF","name":"C1SF","timeunitclear":null,"timeonscene":"2025-12-22 10:57:45","timestaging":null,"timeenroutetoscene":"2025-12-22 10:57:44","timedispatch":"2025-12-22 10:57:44","incidentInternalId":"25-000071","dispatchRunNumber":"25-000071","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 10:57:47] [INFO] Number of extracted fields: 28
[2025-12-22 10:57:47] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 10:57:47] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 10:57:47] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 10:57:47] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 10:57:47] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 10:57:47] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 10:57:47] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 10:57:47] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 10:57:47] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055746682.xml
[2025-12-22 10:57:47] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222055746682.xml
[2025-12-22 11:05:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222060547028.xml
[2025-12-22 11:05:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222060547028.xml for user: 68920395733981a47
[2025-12-22 11:05:47] [INFO] File size: 15061 bytes
[2025-12-22 11:05:47] [INFO] Created FTPFiles record with ID: 6949260bb52d6e3ea
[2025-12-22 11:05:47] [INFO] About to extract fields from XML. File size: 15061 bytes
[2025-12-22 11:05:47] [INFO] Number of mappings: 23
[2025-12-22 11:05:47] [INFO] Starting XML parsing. Content length: 15061
[2025-12-22 11:05:47] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 11:05:47] [INFO] Processing 23 field mappings
[2025-12-22 11:05:47] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 11:05:47] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 11:05:47] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 11:05:47] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 11:05:47] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 11:05:47] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 11:05:47] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 11:05:47] [INFO]   -> Found value: 37379
[2025-12-22 11:05:47] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 11:05:47] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 11:05:47] [INFO]   -> Found value: 10558
[2025-12-22 11:05:47] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 11:05:47] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 11:05:47] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 11:05:47] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 11:05:47] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 11:05:47] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 11:05:47] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 11:05:47] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 11:05:47] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 11:05:47] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 11:05:47] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 11:05:47] [INFO]   -> Found value: 2025-12-22T05:53:02.047-05:00
[2025-12-22 11:05:47] [INFO]   -> Set field 'enroute' = "2025-12-22 10:53:02"
[2025-12-22 11:05:47] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 11:05:47] [INFO]   -> Found value: 2025-12-22T05:57:45.01-05:00
[2025-12-22 11:05:47] [INFO]   -> Set field 'onScene' = "2025-12-22 10:57:45"
[2025-12-22 11:05:47] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 11:05:47] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 11:05:47] [INFO]   -> Set field 'cleared' = null
[2025-12-22 11:05:47] [INFO]   -> Set field 'inService' = null
[2025-12-22 11:05:47] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 11:05:47] [INFO]   -> Found value: 35.254584
[2025-12-22 11:05:47] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 11:05:47] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 11:05:47] [INFO]   -> Found value: -85.142637
[2025-12-22 11:05:47] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 11:05:47] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 11:05:47] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 11:05:47] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 11:05:47] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 11:05:47] [INFO]   -> Found value: C1SF
[2025-12-22 11:05:47] [INFO]   -> Set field 'cADVehicleID' = "C1SF"
[2025-12-22 11:05:47] [INFO]   -> Set field 'name' = "C1SF"
[2025-12-22 11:05:47] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 11:05:47] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 11:05:47] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 11:05:47] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 11:05:47] [INFO]   -> Found value: 2025-12-22T05:57:45.01-05:00
[2025-12-22 11:05:47] [INFO]   -> Set field 'timeonscene' = "2025-12-22 10:57:45"
[2025-12-22 11:05:47] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 11:05:47] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 11:05:47] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 11:05:47] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 11:05:47] [INFO]   -> Found value: 2025-12-22T05:57:44.993-05:00
[2025-12-22 11:05:47] [INFO]   -> Set field 'timeenroutetoscene' = "2025-12-22 10:57:44"
[2025-12-22 11:05:47] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 11:05:47] [INFO]   -> Found value: 2025-12-22T05:57:44.977-05:00
[2025-12-22 11:05:47] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:57:44"
[2025-12-22 11:05:47] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 11:05:47] [INFO]   -> Found value: DR
[2025-12-22 11:05:47] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 11:05:47] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 11:05:47] [INFO]   -> Found value: 25-000220
[2025-12-22 11:05:47] [INFO]   -> Set field 'incidentInternalId' = "25-000220"
[2025-12-22 11:05:47] [INFO]   -> Set field 'dispatchRunNumber' = "25-000220"
[2025-12-22 11:05:47] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 11:05:47] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 11:05:47] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 11:05:47] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 11:05:47] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 11:05:47] [INFO] Found 15 elements for 'Comment', concatenating 15 non-empty values
[2025-12-22 11:05:47] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 11:05:47] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL"
[2025-12-22 11:05:47] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL"
[2025-12-22 11:05:47] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 11:05:47] [INFO] Concatenating street name and type
[2025-12-22 11:05:47] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 11:05:47] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 11:05:47] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":"2025-12-22 10:53:02","onScene":"2025-12-22 10:57:45","cleared":null,"inService":null,"nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"C1SF","name":"C1SF","timeunitclear":null,"timeonscene":"2025-12-22 10:57:45","timestaging":null,"timeenroutetoscene":"2025-12-22 10:57:44","timedispatch":"2025-12-22 10:57:44","incidentInternalId":"25-000220","dispatchRunNumber":"25-000220","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 11:05:47] [INFO] Number of extracted fields: 28
[2025-12-22 11:05:47] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 11:05:47] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 11:05:47] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 11:05:47] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 11:05:47] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 11:05:47] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 11:05:48] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 11:05:48] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 11:05:48] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222060547028.xml
[2025-12-22 11:05:48] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222060547028.xml
[2025-12-22 11:12:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30561.xml
[2025-12-22 11:12:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30561.xml for user: 68d56363ec1209189
[2025-12-22 11:12:21] [INFO] File size: 1310 bytes
[2025-12-22 11:12:21] [INFO] Created FTPFiles record with ID: 694927958ecca3658
[2025-12-22 11:12:21] [INFO] About to extract fields from XML. File size: 1310 bytes
[2025-12-22 11:12:21] [INFO] Number of mappings: 21
[2025-12-22 11:12:21] [INFO] Starting XML parsing. Content length: 1310
[2025-12-22 11:12:21] [INFO] XML parsed successfully. Root element: Incident
[2025-12-22 11:12:21] [INFO] Processing 21 field mappings
[2025-12-22 11:12:21] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2025-12-22 11:12:21] [INFO]   -> Found value: 25-30561
[2025-12-22 11:12:21] [INFO]   -> Set field 'dispatchRunNumber' = "25-30561"
[2025-12-22 11:12:21] [INFO]   -> Set field 'cADNumber' = "25-30561"
[2025-12-22 11:12:21] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-22 11:12:21] [INFO]   -> Found value: 106
[2025-12-22 11:12:21] [INFO]   -> Set field 'incidentLocationStreetNumber' = 106
[2025-12-22 11:12:21] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-22 11:12:21] [INFO]   -> Found value: N KENNETT ST
[2025-12-22 11:12:21] [INFO]   -> Set field 'streetName' = "N KENNETT ST"
[2025-12-22 11:12:21] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-22 11:12:21] [INFO]   -> No value found (null or empty)
[2025-12-22 11:12:21] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-22 11:12:21] [INFO]   -> Found value: MORLEY
[2025-12-22 11:12:21] [INFO]   -> Set field 'incidentLocationCity' = "MORLEY"
[2025-12-22 11:12:21] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-22 11:12:21] [INFO]   -> No value found (null or empty)
[2025-12-22 11:12:21] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-22 11:12:21] [INFO]   -> Found value: MO
[2025-12-22 11:12:21] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2025-12-22 11:12:21] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-22 11:12:21] [INFO]   -> Found value: 63767
[2025-12-22 11:12:21] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63767
[2025-12-22 11:12:21] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-22 11:12:21] [INFO]   -> Found value: 0
[2025-12-22 11:12:21] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-22 11:12:21] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-22 11:12:21] [INFO]   -> Found value: 0
[2025-12-22 11:12:21] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-22 11:12:21] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-22 11:12:21] [INFO]   -> Found value: RESPIRATORY DISTRESS
[2025-12-22 11:12:21] [INFO]   -> Set field 'incidentTypeValue1' = "RESPIRATORY DISTRESS"
[2025-12-22 11:12:21] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-22 11:12:21] [INFO]   -> Found value: 12-22-2025 05:00:38|47 YOM TROUBLE BREATHING
[2025-12-22 11:12:21] [INFO]   -> Set field 'dispatchNotes' = "12-22-2025 05:00:38|47 YOM TROUBLE BREATHING"
[2025-12-22 11:12:21] [INFO]   -> Set field 'cADLog' = "12-22-2025 05:00:38|47 YOM TROUBLE BREATHING"
[2025-12-22 11:12:21] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-22 11:12:21] [INFO]   -> Found value: 12-22-2025T05:01:20
[2025-12-22 11:12:21] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T05:01:20
[2025-12-22 11:12:21] [ERROR] Error formatting datetime '2025-22-12T05:01:20': Failed to parse time string (2025-22-12T05:01:20) at position 6 (2): Unexpected character
[2025-12-22 11:12:21] [INFO]   -> Set field 'alarm' = null
[2025-12-22 11:12:21] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T05:01:20
[2025-12-22 11:12:21] [ERROR] Error formatting datetime '2025-22-12T05:01:20': Failed to parse time string (2025-22-12T05:01:20) at position 6 (2): Unexpected character
[2025-12-22 11:12:21] [INFO]   -> Set field 'dispatched' = null
[2025-12-22 11:12:21] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-22 11:12:21] [INFO]   -> No value found (null or empty)
[2025-12-22 11:12:21] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-22 11:12:21] [INFO]   -> No value found (null or empty)
[2025-12-22 11:12:21] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-22 11:12:21] [INFO]   -> Found value: RURAL PAGE
[2025-12-22 11:12:21] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2025-12-22 11:12:21] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2025-12-22 11:12:21] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-22 11:12:21] [INFO]   -> No value found (null or empty)
[2025-12-22 11:12:21] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-22 11:12:21] [INFO]   -> No value found (null or empty)
[2025-12-22 11:12:21] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-22 11:12:21] [INFO]   -> Found value: 12-22-2025T05:11:48
[2025-12-22 11:12:21] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T05:11:48
[2025-12-22 11:12:21] [ERROR] Error formatting datetime '2025-22-12T05:11:48': Failed to parse time string (2025-22-12T05:11:48) at position 6 (2): Unexpected character
[2025-12-22 11:12:21] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 11:12:21] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-22 11:12:21] [INFO]   -> Found value: 12-22-2025T05:03:13
[2025-12-22 11:12:21] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T05:03:13
[2025-12-22 11:12:21] [ERROR] Error formatting datetime '2025-22-12T05:03:13': Failed to parse time string (2025-22-12T05:03:13) at position 6 (2): Unexpected character
[2025-12-22 11:12:21] [INFO]   -> Set field 'timedispatch' = null
[2025-12-22 11:12:21] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-22 11:12:21] [INFO]   -> Found value: SCRFD
[2025-12-22 11:12:21] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2025-12-22 11:12:21] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-22 11:12:21] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-22 11:12:21] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-30561","cADNumber":"25-30561","incidentLocationStreetNumber":106,"streetName":"N KENNETT ST","incidentLocationCity":"MORLEY","incidentLocationStateName":"MO","nERISIncidentPostalCode":63767,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"RESPIRATORY DISTRESS","dispatchNotes":"12-22-2025 05:00:38|47 YOM TROUBLE BREATHING","cADLog":"12-22-2025 05:00:38|47 YOM TROUBLE BREATHING","alarm":null,"dispatched":null,"cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2025-12-22 11:12:21] [INFO] Number of extracted fields: 20
[2025-12-22 11:12:21] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2025-12-22 11:12:21] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SCRFD', Parsed IDs = ["SCRFD"], Assigned Agencies count = 2
[2025-12-22 11:12:21] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2025-12-22 11:12:21] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (position 1)
[2025-12-22 11:12:21] [INFO] Found SAASClient match: ID = 6643bdb30659f00d8, Name = Scott County Rural Fire Protection District for AgencyCode 'SCRFD'
[2025-12-22 11:12:21] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) based on AgencyCode 'SCRFD'
[2025-12-22 11:12:21] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-22 11:12:21] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-22 11:12:22] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2025-12-22 11:12:22] [INFO] Found existing IncidentTypeMapping with ID: 694459012cb7ddd64
[2025-12-22 11:12:34] [INFO] Created new Dispatches record with ID: 694927966c1e1c012
[2025-12-22 11:12:34] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30561.xml
[2025-12-22 11:12:34] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30561.xml
[2025-12-22 11:15:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222061559566.xml
[2025-12-22 11:15:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222061559566.xml for user: 68920395733981a47
[2025-12-22 11:15:59] [INFO] File size: 16774 bytes
[2025-12-22 11:16:00] [INFO] Created FTPFiles record with ID: 69492870345426bc9
[2025-12-22 11:16:00] [INFO] About to extract fields from XML. File size: 16774 bytes
[2025-12-22 11:16:00] [INFO] Number of mappings: 23
[2025-12-22 11:16:00] [INFO] Starting XML parsing. Content length: 16774
[2025-12-22 11:16:00] [INFO] XML parsed successfully. Root element: CombinedIncidentVehicleData
[2025-12-22 11:16:00] [INFO] Processing 23 field mappings
[2025-12-22 11:16:00] [INFO] Mapping #1: Extracting 'IncidentData.ProblemName' => 'incidentTypeValue1'
[2025-12-22 11:16:00] [INFO]   -> Found value: CARBON-Carbon Monoxide Alarm
[2025-12-22 11:16:00] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON-Carbon Monoxide Alarm"
[2025-12-22 11:16:00] [INFO] Mapping #2: Extracting 'IncidentData.LocationName' => 'businessName'
[2025-12-22 11:16:00] [INFO]   -> Found value: ,10558 SOVEREIGN POINTE DR
[2025-12-22 11:16:00] [INFO]   -> Set field 'businessName' = ",10558 SOVEREIGN POINTE DR"
[2025-12-22 11:16:00] [INFO] Mapping #3: Extracting 'IncidentData.PostalCode' => 'nERISIncidentPostalCode'
[2025-12-22 11:16:00] [INFO]   -> Found value: 37379
[2025-12-22 11:16:00] [INFO]   -> Set field 'nERISIncidentPostalCode' = 37379
[2025-12-22 11:16:00] [INFO] Mapping #4: Extracting 'IncidentData.AddressHouseNumber' => 'incidentLocationStreetNumber'
[2025-12-22 11:16:00] [INFO]   -> Found value: 10558
[2025-12-22 11:16:00] [INFO]   -> Set field 'incidentLocationStreetNumber' = 10558
[2025-12-22 11:16:00] [INFO] Mapping #5: Extracting 'IncidentData.AddressStreetName' => 'streetName'
[2025-12-22 11:16:00] [INFO]   -> Found value: SOVEREIGN POINTE
[2025-12-22 11:16:00] [INFO]   -> Set field 'streetName' = "SOVEREIGN POINTE"
[2025-12-22 11:16:00] [INFO] Mapping #6: Extracting 'IncidentData.CrossStreet' => 'incidentLocationCross'
[2025-12-22 11:16:00] [INFO]   -> Found value: BRIAR RIDGE LN/OLD THATCHER RD
[2025-12-22 11:16:00] [INFO]   -> Set field 'incidentLocationCross' = "BRIAR RIDGE LN\/OLD THATCHER RD"
[2025-12-22 11:16:00] [INFO] Mapping #7: Extracting 'IncidentData.ResponseDate' => 'alarm'
[2025-12-22 11:16:00] [INFO]   -> Found value: 2025-12-22T05:36:27.797-05:00
[2025-12-22 11:16:00] [INFO]   -> Set field 'alarm' = "2025-12-22 10:36:27"
[2025-12-22 11:16:00] [INFO] Mapping #8: Extracting 'IncidentData.TimeFirstUnitEnroute' => 'enroute'
[2025-12-22 11:16:00] [INFO]   -> Found value: 2025-12-22T05:53:02.047-05:00
[2025-12-22 11:16:00] [INFO]   -> Set field 'enroute' = "2025-12-22 10:53:02"
[2025-12-22 11:16:00] [INFO] Mapping #9: Extracting 'IncidentData.TimeFirstUnitArrived' => 'onScene'
[2025-12-22 11:16:00] [INFO]   -> Found value: 2025-12-22T05:57:45.01-05:00
[2025-12-22 11:16:00] [INFO]   -> Set field 'onScene' = "2025-12-22 10:57:45"
[2025-12-22 11:16:00] [INFO] Mapping #10: Extracting 'IncidentData.TimeCallClosed' => ["cleared","inService"]
[2025-12-22 11:16:00] [INFO]   -> Found value: 2025-12-22T06:15:57.503-05:00
[2025-12-22 11:16:00] [INFO]   -> Set field 'cleared' = "2025-12-22 11:15:57"
[2025-12-22 11:16:00] [INFO]   -> Set field 'inService' = "2025-12-22 11:15:57"
[2025-12-22 11:16:00] [INFO] Mapping #11: Extracting 'IncidentData.Latitude' => 'nERISIncidentLatitude'
[2025-12-22 11:16:00] [INFO]   -> Found value: 35.254584
[2025-12-22 11:16:00] [INFO]   -> Set field 'nERISIncidentLatitude' = 35.25458400000000125373844639398157596588134765625
[2025-12-22 11:16:00] [INFO] Mapping #12: Extracting 'IncidentData.Longitude' => 'nERISIncidentLongitude'
[2025-12-22 11:16:00] [INFO]   -> Found value: -85.142637
[2025-12-22 11:16:00] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.1426369999999934634615783579647541046142578125
[2025-12-22 11:16:00] [INFO] Mapping #13: Extracting 'IncidentData.TimeFirstUnitAssigned' => 'dispatched'
[2025-12-22 11:16:00] [INFO]   -> Found value: 2025-12-22T05:37:23.49-05:00
[2025-12-22 11:16:00] [INFO]   -> Set field 'dispatched' = "2025-12-22 10:37:23"
[2025-12-22 11:16:00] [INFO] Mapping #14: Extracting 'Vehicles.VehicleData[0].UnitName' => ["cADVehicleID","name"]
[2025-12-22 11:16:00] [INFO]   -> Found value: C1SF
[2025-12-22 11:16:00] [INFO]   -> Set field 'cADVehicleID' = "C1SF"
[2025-12-22 11:16:00] [INFO]   -> Set field 'name' = "C1SF"
[2025-12-22 11:16:00] [INFO] Mapping #15: Extracting 'Vehicles.VehicleData[0].TimeClearedCall' => 'timeunitclear'
[2025-12-22 11:16:00] [INFO]   -> Found value: 2025-12-22T06:15:57.503-05:00
[2025-12-22 11:16:00] [INFO]   -> Set field 'timeunitclear' = "2025-12-22 11:15:57"
[2025-12-22 11:16:00] [INFO] Mapping #16: Extracting 'Vehicles.VehicleData[0].TimeArrivedAtScene' => 'timeonscene'
[2025-12-22 11:16:00] [INFO]   -> Found value: 2025-12-22T05:57:45.01-05:00
[2025-12-22 11:16:00] [INFO]   -> Set field 'timeonscene' = "2025-12-22 10:57:45"
[2025-12-22 11:16:00] [INFO] Mapping #17: Extracting 'Vehicles.VehicleData[0].TimeStaged' => 'timestaging'
[2025-12-22 11:16:00] [INFO]   -> Found value: 0001-01-01T00:00:00
[2025-12-22 11:16:00] [INFO]   -> Set field 'timestaging' = null
[2025-12-22 11:16:00] [INFO] Mapping #18: Extracting 'Vehicles.VehicleData[0].TimeEnroute' => 'timeenroutetoscene'
[2025-12-22 11:16:00] [INFO]   -> Found value: 2025-12-22T05:57:44.993-05:00
[2025-12-22 11:16:00] [INFO]   -> Set field 'timeenroutetoscene' = "2025-12-22 10:57:44"
[2025-12-22 11:16:00] [INFO] Mapping #19: Extracting 'Vehicles.VehicleData[0].TimeAssigned' => 'timedispatch'
[2025-12-22 11:16:00] [INFO]   -> Found value: 2025-12-22T05:57:44.977-05:00
[2025-12-22 11:16:00] [INFO]   -> Set field 'timedispatch' = "2025-12-22 10:57:44"
[2025-12-22 11:16:00] [INFO] Mapping #20: Extracting 'IncidentData.AddressStreetType' => 'streetType'
[2025-12-22 11:16:00] [INFO]   -> Found value: DR
[2025-12-22 11:16:00] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 11:16:00] [INFO] Mapping #21: Extracting 'IncidentData.UnitJurisdictionCaseNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 11:16:00] [INFO]   -> Found value: 25-000071
[2025-12-22 11:16:00] [INFO]   -> Set field 'incidentInternalId' = "25-000071"
[2025-12-22 11:16:00] [INFO]   -> Set field 'dispatchRunNumber' = "25-000071"
[2025-12-22 11:16:00] [INFO] Mapping #22: Extracting 'IncidentData.IncidentNumber' => ["policeReportNumber","cADNumber"]
[2025-12-22 11:16:00] [INFO]   -> Found value: 2025-12-30633
[2025-12-22 11:16:00] [INFO]   -> Set field 'policeReportNumber' = "2025-12-30633"
[2025-12-22 11:16:00] [INFO]   -> Set field 'cADNumber' = "2025-12-30633"
[2025-12-22 11:16:00] [INFO] Mapping #23: Extracting 'IncidentData.Comments.Comment' => ["dispatchNotes","cADLog"]
[2025-12-22 11:16:00] [INFO] Found 15 elements for 'Comment', concatenating 15 non-empty values
[2025-12-22 11:16:00] [INFO]   -> Found value: 12/22/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF
12/22/2025 05:37:08 DAVIS_T      ...
[2025-12-22 11:16:00] [INFO]   -> Set field 'dispatchNotes' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL"
[2025-12-22 11:16:00] [INFO]   -> Set field 'cADLog' = "12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL"
[2025-12-22 11:16:00] [INFO] Finished extracting fields. Total fields extracted: 28
[2025-12-22 11:16:00] [INFO] Concatenating street name and type
[2025-12-22 11:16:00] [INFO]   -> Combined street name: SOVEREIGN POINTE DR
[2025-12-22 11:16:00] [INFO] Built locationCoordinates from lat/lng: 35.254584,-85.142637
[2025-12-22 11:16:00] [INFO] Extracted parsing rules data: {"incidentTypeValue1":"CARBON-Carbon Monoxide Alarm","businessName":",10558 SOVEREIGN POINTE DR","nERISIncidentPostalCode":37379,"incidentLocationStreetNumber":10558,"streetName":"SOVEREIGN POINTE DR","incidentLocationCross":"BRIAR RIDGE LN\/OLD THATCHER RD","alarm":"2025-12-22 10:36:27","enroute":"2025-12-22 10:53:02","onScene":"2025-12-22 10:57:45","cleared":"2025-12-22 11:15:57","inService":"2025-12-22 11:15:57","nERISIncidentLatitude":35.25458400000000125373844639398157596588134765625,"nERISIncidentLongitude":-85.1426369999999934634615783579647541046142578125,"dispatched":"2025-12-22 10:37:23","cADVehicleID":"C1SF","name":"C1SF","timeunitclear":"2025-12-22 11:15:57","timeonscene":"2025-12-22 10:57:45","timestaging":null,"timeenroutetoscene":"2025-12-22 10:57:44","timedispatch":"2025-12-22 10:57:44","incidentInternalId":"25-000071","dispatchRunNumber":"25-000071","policeReportNumber":"2025-12-30633","cADNumber":"2025-12-30633","dispatchNotes":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL","cADLog":"12\/22\/2025 05:36:53 DAVIS_T                 [1] ALARM IS GOING OFF\n12\/22\/2025 05:37:08 DAVIS_T                 [2] BATTERY POWERED MONIXIDE ALARM\n12\/22\/2025 05:37:15 DAVIS_T                 [3] RP IS ON THE BACK PORCH\n12\/22\/2025 05:37:23 ADAMS_C                 [4] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Sequoyah VFD. Case Number(s): 25-000071 requested by H1700.\n12\/22\/2025 05:37:49 DAVIS_T                 [5] RP HAS 1 DOG WITH HER ON THE PORCH AS WELL\n12\/22\/2025 05:38:05 ADAMS_C                 [6] *** fg 5 ***\n12\/22\/2025 05:39:08 DAVIS_T                 [7] RP HAS BEEN ISSUES WITH THE GAS FIRE POWER BUT HAD IT MAINTENANCED RECENTLY\n12\/22\/2025 05:41:03 ADAMS_C                 [8] 2ND TONES FOR SVFD\n12\/22\/2025 05:41:46 ADAMS_C                 [9] HYDRANT AT SOVEREIGN POINTE\/OLD THATCHER\n12\/22\/2025 05:45:10 ADAMS_C                 [10] 3RD TONES FOR SVFD\n12\/22\/2025 05:45:48 ADAMS_C                 [11] 1701 CLEAR ON CALL\n12\/22\/2025 05:53:02 ADAMS_C                 [12] Automatic Case Number(s) issued for Incident #[2025-12-30633], Jurisdiction: Mowbray VFD. Case Number(s): 25-000220 requested by S1MF.\n12\/22\/2025 05:54:24 ADAMS_C                 [13] 14306 RESPONDING\n12\/22\/2025 05:54:28 ADAMS_C                 [14] 1720 TO HALL\n12\/22\/2025 05:54:54 ADAMS_C                 [15] 14306 NOW TO MF HALL","locationCoordinates":"35.254584,-85.142637"}
[2025-12-22 11:16:00] [INFO] Number of extracted fields: 28
[2025-12-22 11:16:00] [INFO] MULTI-AGENCY: No cADAgencyIdentifier found in extracted data
[2025-12-22 11:16:00] [INFO] Multi-agency routing check: CAD Agency ID raw = 'NULL', Parsed IDs = [], Assigned Agencies count = 2
[2025-12-22 11:16:00] [WARNING] WARNING: Multi-agency mailbox (2 agencies) received dispatch WITHOUT cADAgencyIdentifier. This dispatch will use mailbox default agency. Check XML field mapping for cADAgencyIdentifier.
[2025-12-22 11:16:00] [INFO] Single-agency mode: Using mailbox saasclientId: 681942a25bc58c3ab
[2025-12-22 11:16:00] [INFO] Final routing: saasclientId = 681942a25bc58c3ab, dispatchStationsIds = ["681a4332a2e490051","6819761cc9478253f"]
[2025-12-22 11:16:00] [INFO] Found existing IncidentTypeMapping with ID: 68de8ad2d4fe68896
[2025-12-22 11:16:00] [INFO] Found existing Dispatch with cADNumber '2025-12-30633', ID: 69491f458ed462a3a - will update instead of create
[2025-12-22 11:16:00] [INFO] Updated existing Dispatches record with ID: 69491f458ed462a3a
[2025-12-22 11:16:00] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222061559566.xml
[2025-12-22 11:16:00] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68920395733981a47/INCCOMBINED_2025-12-30633_20251222061559566.xml
[2025-12-22 12:02:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30564.xml
[2025-12-22 12:02:00] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30564.xml for user: 68d56363ec1209189
[2025-12-22 12:02:00] [INFO] File size: 1649 bytes
[2025-12-22 12:02:00] [INFO] Created FTPFiles record with ID: 69493338bd53db4df
[2025-12-22 12:02:00] [INFO] About to extract fields from XML. File size: 1649 bytes
[2025-12-22 12:02:00] [INFO] Number of mappings: 21
[2025-12-22 12:02:00] [INFO] Starting XML parsing. Content length: 1649
[2025-12-22 12:02:00] [INFO] XML parsed successfully. Root element: Incident
[2025-12-22 12:02:00] [INFO] Processing 21 field mappings
[2025-12-22 12:02:00] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2025-12-22 12:02:00] [INFO]   -> Found value: 25-30564
[2025-12-22 12:02:00] [INFO]   -> Set field 'dispatchRunNumber' = "25-30564"
[2025-12-22 12:02:00] [INFO]   -> Set field 'cADNumber' = "25-30564"
[2025-12-22 12:02:00] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-22 12:02:00] [INFO]   -> Found value: 202
[2025-12-22 12:02:00] [INFO]   -> Set field 'incidentLocationStreetNumber' = 202
[2025-12-22 12:02:00] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-22 12:02:00] [INFO]   -> Found value: COUNTRY HOME LN
[2025-12-22 12:02:00] [INFO]   -> Set field 'streetName' = "COUNTRY HOME LN"
[2025-12-22 12:02:00] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-22 12:02:00] [INFO]   -> No value found (null or empty)
[2025-12-22 12:02:00] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-22 12:02:00] [INFO]   -> Found value: BENTON
[2025-12-22 12:02:00] [INFO]   -> Set field 'incidentLocationCity' = "BENTON"
[2025-12-22 12:02:00] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-22 12:02:00] [INFO]   -> No value found (null or empty)
[2025-12-22 12:02:00] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-22 12:02:00] [INFO]   -> Found value: MO
[2025-12-22 12:02:00] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2025-12-22 12:02:00] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-22 12:02:00] [INFO]   -> Found value: 63736
[2025-12-22 12:02:00] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63736
[2025-12-22 12:02:00] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-22 12:02:00] [INFO]   -> Found value: 0
[2025-12-22 12:02:00] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-22 12:02:00] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-22 12:02:00] [INFO]   -> Found value: 0
[2025-12-22 12:02:00] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-22 12:02:00] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-22 12:02:00] [INFO]   -> Found value: FALL
[2025-12-22 12:02:00] [INFO]   -> Set field 'incidentTypeValue1' = "FALL"
[2025-12-22 12:02:00] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-22 12:02:00] [INFO]   -> Found value: 12-22-2025 05:25:01|59 YEAR OLD MALE FELL-WIFE UNABLE TO GET HIM UP 12-22-2025 05:38:23|DISORIENTED ...
[2025-12-22 12:02:00] [INFO]   -> Set field 'dispatchNotes' = "12-22-2025 05:25:01|59 YEAR OLD MALE FELL-WIFE UNABLE TO GET HIM UP 12-22-2025 05:38:23|DISORIENTED  HISTORY OF THREE STROKES  NEUROLOGICAL EFFECTS FROM STROKES   DIFFICULTY BREATHING  BODY ACHES 12-22-2025 05:39:22|HISTORY OF KIDNEY DISEASE 12-22-2025 05:40:05|NORTH SCOTT UPDATED 12-22-2025 06:00:39|NORTH SCOTT TRANSPORTING ONE TO MERCY"
[2025-12-22 12:02:00] [INFO]   -> Set field 'cADLog' = "12-22-2025 05:25:01|59 YEAR OLD MALE FELL-WIFE UNABLE TO GET HIM UP 12-22-2025 05:38:23|DISORIENTED  HISTORY OF THREE STROKES  NEUROLOGICAL EFFECTS FROM STROKES   DIFFICULTY BREATHING  BODY ACHES 12-22-2025 05:39:22|HISTORY OF KIDNEY DISEASE 12-22-2025 05:40:05|NORTH SCOTT UPDATED 12-22-2025 06:00:39|NORTH SCOTT TRANSPORTING ONE TO MERCY"
[2025-12-22 12:02:00] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-22 12:02:00] [INFO]   -> Found value: 12-22-2025T05:25:13
[2025-12-22 12:02:00] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T05:25:13
[2025-12-22 12:02:00] [ERROR] Error formatting datetime '2025-22-12T05:25:13': Failed to parse time string (2025-22-12T05:25:13) at position 6 (2): Unexpected character
[2025-12-22 12:02:00] [INFO]   -> Set field 'alarm' = null
[2025-12-22 12:02:00] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T05:25:13
[2025-12-22 12:02:00] [ERROR] Error formatting datetime '2025-22-12T05:25:13': Failed to parse time string (2025-22-12T05:25:13) at position 6 (2): Unexpected character
[2025-12-22 12:02:00] [INFO]   -> Set field 'dispatched' = null
[2025-12-22 12:02:00] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-22 12:02:00] [INFO]   -> Found value: 12-22-2025T05:33:27
[2025-12-22 12:02:00] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T05:33:27
[2025-12-22 12:02:00] [ERROR] Error formatting datetime '2025-22-12T05:33:27': Failed to parse time string (2025-22-12T05:33:27) at position 6 (2): Unexpected character
[2025-12-22 12:02:00] [INFO]   -> Set field 'onScene' = null
[2025-12-22 12:02:00] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-22 12:02:00] [INFO]   -> Found value: 12-22-2025T06:00:43
[2025-12-22 12:02:00] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T06:00:43
[2025-12-22 12:02:00] [ERROR] Error formatting datetime '2025-22-12T06:00:43': Failed to parse time string (2025-22-12T06:00:43) at position 6 (2): Unexpected character
[2025-12-22 12:02:00] [INFO]   -> Set field 'cleared' = null
[2025-12-22 12:02:00] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T06:00:43
[2025-12-22 12:02:00] [ERROR] Error formatting datetime '2025-22-12T06:00:43': Failed to parse time string (2025-22-12T06:00:43) at position 6 (2): Unexpected character
[2025-12-22 12:02:00] [INFO]   -> Set field 'inService' = null
[2025-12-22 12:02:00] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-22 12:02:00] [INFO]   -> Found value: RURAL PAGE
[2025-12-22 12:02:00] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2025-12-22 12:02:00] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2025-12-22 12:02:00] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-22 12:02:00] [INFO]   -> No value found (null or empty)
[2025-12-22 12:02:00] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-22 12:02:00] [INFO]   -> No value found (null or empty)
[2025-12-22 12:02:00] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-22 12:02:00] [INFO]   -> Found value: 12-22-2025T06:00:43
[2025-12-22 12:02:00] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T06:00:43
[2025-12-22 12:02:00] [ERROR] Error formatting datetime '2025-22-12T06:00:43': Failed to parse time string (2025-22-12T06:00:43) at position 6 (2): Unexpected character
[2025-12-22 12:02:00] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 12:02:00] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-22 12:02:00] [INFO]   -> Found value: 12-22-2025T05:26:17
[2025-12-22 12:02:00] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T05:26:17
[2025-12-22 12:02:00] [ERROR] Error formatting datetime '2025-22-12T05:26:17': Failed to parse time string (2025-22-12T05:26:17) at position 6 (2): Unexpected character
[2025-12-22 12:02:00] [INFO]   -> Set field 'timedispatch' = null
[2025-12-22 12:02:00] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-22 12:02:00] [INFO]   -> Found value: SCRFD
[2025-12-22 12:02:00] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2025-12-22 12:02:00] [INFO] Finished extracting fields. Total fields extracted: 22
[2025-12-22 12:02:00] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-22 12:02:00] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-30564","cADNumber":"25-30564","incidentLocationStreetNumber":202,"streetName":"COUNTRY HOME LN","incidentLocationCity":"BENTON","incidentLocationStateName":"MO","nERISIncidentPostalCode":63736,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FALL","dispatchNotes":"12-22-2025 05:25:01|59 YEAR OLD MALE FELL-WIFE UNABLE TO GET HIM UP 12-22-2025 05:38:23|DISORIENTED  HISTORY OF THREE STROKES  NEUROLOGICAL EFFECTS FROM STROKES   DIFFICULTY BREATHING  BODY ACHES 12-22-2025 05:39:22|HISTORY OF KIDNEY DISEASE 12-22-2025 05:40:05|NORTH SCOTT UPDATED 12-22-2025 06:00:39|NORTH SCOTT TRANSPORTING ONE TO MERCY","cADLog":"12-22-2025 05:25:01|59 YEAR OLD MALE FELL-WIFE UNABLE TO GET HIM UP 12-22-2025 05:38:23|DISORIENTED  HISTORY OF THREE STROKES  NEUROLOGICAL EFFECTS FROM STROKES   DIFFICULTY BREATHING  BODY ACHES 12-22-2025 05:39:22|HISTORY OF KIDNEY DISEASE 12-22-2025 05:40:05|NORTH SCOTT UPDATED 12-22-2025 06:00:39|NORTH SCOTT TRANSPORTING ONE TO MERCY","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2025-12-22 12:02:00] [INFO] Number of extracted fields: 23
[2025-12-22 12:02:00] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2025-12-22 12:02:00] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SCRFD', Parsed IDs = ["SCRFD"], Assigned Agencies count = 2
[2025-12-22 12:02:00] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2025-12-22 12:02:00] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (position 1)
[2025-12-22 12:02:00] [INFO] Found SAASClient match: ID = 6643bdb30659f00d8, Name = Scott County Rural Fire Protection District for AgencyCode 'SCRFD'
[2025-12-22 12:02:00] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) based on AgencyCode 'SCRFD'
[2025-12-22 12:02:01] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-22 12:02:01] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-22 12:02:01] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2025-12-22 12:02:01] [INFO] Found existing IncidentTypeMapping with ID: 694108adc0afa89c5
[2025-12-22 12:02:15] [INFO] Created new Dispatches record with ID: 69493339a6d1d3299
[2025-12-22 12:02:15] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30564.xml
[2025-12-22 12:02:15] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30564.xml
[2025-12-22 12:52:06] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250140042_20251222_125206.XML
[2025-12-22 12:52:06] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250140042_20251222_125206.XML for user: 68f1466aed072ad4a
[2025-12-22 12:52:06] [INFO] File size: 5805 bytes
[2025-12-22 12:52:07] [INFO] Created FTPFiles record with ID: 69493ef711bed3aff
[2025-12-22 12:52:07] [INFO] About to extract fields from XML. File size: 5805 bytes
[2025-12-22 12:52:07] [INFO] Number of mappings: 28
[2025-12-22 12:52:07] [INFO] Starting XML parsing. Content length: 5805
[2025-12-22 12:52:07] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-22 12:52:07] [INFO] Processing 28 field mappings
[2025-12-22 12:52:07] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-22 12:52:07] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2025-12-22 12:52:07] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2025-12-22 12:52:07] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2025-12-22 12:52:07] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 12:52:07] [INFO] Found 4 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-22 12:52:07] [INFO]   -> Found value: 2025003136
2025002527
[2025-12-22 12:52:07] [INFO]   -> Set field 'incidentInternalId' = "2025003136\n2025002527"
[2025-12-22 12:52:07] [INFO]   -> Set field 'dispatchRunNumber' = "2025003136\n2025002527"
[2025-12-22 12:52:07] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-22 12:52:07] [INFO]   -> Found value: DIABETIC PROBLEM
[2025-12-22 12:52:07] [INFO]   -> Set field 'incidentTypeValue1' = "DIABETIC PROBLEM"
[2025-12-22 12:52:07] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-22 12:52:07] [INFO]   -> Found value: 384
[2025-12-22 12:52:07] [INFO]   -> Set field 'incidentLocationStreetNumber' = 384
[2025-12-22 12:52:07] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-22 12:52:07] [INFO]   -> Found value: TN
[2025-12-22 12:52:07] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 12:52:07] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-22 12:52:07] [INFO]   -> Found value: 38574
[2025-12-22 12:52:07] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2025-12-22 12:52:07] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-22 12:52:07] [INFO]   -> No value found (null or empty)
[2025-12-22 12:52:07] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-22 12:52:07] [INFO]   -> No value found (null or empty)
[2025-12-22 12:52:07] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-22 12:52:07] [INFO]   -> Found value: 36.11648
[2025-12-22 12:52:07] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.11648000000000280351741821505129337310791015625
[2025-12-22 12:52:07] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-22 12:52:07] [INFO]   -> Found value: -85.16635
[2025-12-22 12:52:07] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.166349999999994224708643741905689239501953125
[2025-12-22 12:52:07] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-22 12:52:07] [INFO]   -> Found value: 2025-12-22 06:51:20
[2025-12-22 12:52:07] [INFO]   -> Set field 'alarm' = "2025-12-22 06:51:20"
[2025-12-22 12:52:07] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-22 12:52:07] [INFO]   -> Found value: 2025-12-22 06:52:03
[2025-12-22 12:52:07] [INFO]   -> Set field 'dispatched' = "2025-12-22 06:52:03"
[2025-12-22 12:52:07] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-22 12:52:07] [INFO]   -> No value found (null or empty)
[2025-12-22 12:52:07] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-22 12:52:07] [INFO]   -> No value found (null or empty)
[2025-12-22 12:52:07] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-22 12:52:07] [INFO]   -> No value found (null or empty)
[2025-12-22 12:52:07] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-22 12:52:07] [INFO]   -> Found value: CADE RD/HIGH FLATS RD
[2025-12-22 12:52:07] [INFO]   -> Set field 'incidentLocationCross' = "CADE RD\/HIGH FLATS RD"
[2025-12-22 12:52:07] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-22 12:52:07] [INFO]   -> Found value: PCFR
[2025-12-22 12:52:07] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-22 12:52:07] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-22 12:52:07] [INFO]   -> Found value: 2025-12-22 06:52:03
[2025-12-22 12:52:07] [INFO]   -> Set field 'timedispatch' = "2025-12-22 06:52:03"
[2025-12-22 12:52:07] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-22 12:52:07] [INFO]   -> No value found (null or empty)
[2025-12-22 12:52:07] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-22 12:52:07] [INFO]   -> No value found (null or empty)
[2025-12-22 12:52:07] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-22 12:52:07] [INFO]   -> No value found (null or empty)
[2025-12-22 12:52:07] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-22 12:52:07] [INFO]   -> No value found (null or empty)
[2025-12-22 12:52:07] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-22 12:52:07] [INFO] Found 4 elements for 'CadInciNumber', concatenating 4 non-empty values
[2025-12-22 12:52:07] [INFO]   -> Found value: 20250140042
20250140040
20250140041
20250140043
[2025-12-22 12:52:07] [INFO]   -> Set field 'policeReportNumber' = "20250140042\n20250140040\n20250140041\n20250140043"
[2025-12-22 12:52:07] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-22 12:52:07] [INFO]   -> Found value: [APCO INTELLICOMM] Caller Name: VERIZON  [12/22/25 06:52:00 PSUTIL01] [EMS] JESSIE WALKER  60 YOM  [...
[2025-12-22 12:52:07] [INFO]   -> Set field 'dispatchNotes' = "[APCO INTELLICOMM] Caller Name: VERIZON  [12\/22\/25 06:52:00 PSUTIL01] [EMS] JESSIE WALKER  60 YOM  [12\/22\/25 06:51:43 KBURTON] [APCO INTELLICOMM] Case ID: IggiD_FubZ Caller Phone: 9313037299 Caller Name: VERIZON Incident Location: 384 TABLE TOP RD Incident Location Detail: CADE RD\/HIGH FLATS RD Nature: DIABETIC PROBLEM Incident #: 20250140040 CAD Call Taker: KBURTON Chief Complaint: (empty)  [12\/22\/25 06:51:21 PSUTIL01] Event spawned from DIABETIC PROBLEM.  [12\/22\/2025 06:51:20 KBURTON] DIABETIC HX  LOW BS  UNRESPONSIVE  [12\/22\/25 06:51:16 KBURTON]]"
[2025-12-22 12:52:07] [INFO]   -> Set field 'cADLog' = "[APCO INTELLICOMM] Caller Name: VERIZON  [12\/22\/25 06:52:00 PSUTIL01] [EMS] JESSIE WALKER  60 YOM  [12\/22\/25 06:51:43 KBURTON] [APCO INTELLICOMM] Case ID: IggiD_FubZ Caller Phone: 9313037299 Caller Name: VERIZON Incident Location: 384 TABLE TOP RD Incident Location Detail: CADE RD\/HIGH FLATS RD Nature: DIABETIC PROBLEM Incident #: 20250140040 CAD Call Taker: KBURTON Chief Complaint: (empty)  [12\/22\/25 06:51:21 PSUTIL01] Event spawned from DIABETIC PROBLEM.  [12\/22\/2025 06:51:20 KBURTON] DIABETIC HX  LOW BS  UNRESPONSIVE  [12\/22\/25 06:51:16 KBURTON]]"
[2025-12-22 12:52:07] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-22 12:52:07] [INFO]   -> Found value: MONTEREY
[2025-12-22 12:52:07] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2025-12-22 12:52:07] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-22 12:52:07] [INFO]   -> Found value: TABLE TOP
[2025-12-22 12:52:07] [INFO]   -> Set field 'streetName' = "TABLE TOP"
[2025-12-22 12:52:07] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-22 12:52:07] [INFO]   -> Found value: RD
[2025-12-22 12:52:07] [INFO]   -> Set field 'streetType' = "RD"
[2025-12-22 12:52:07] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-22 12:52:07] [INFO]   -> Found value: 384 TABLE TOP RD
[2025-12-22 12:52:07] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "384 TABLE TOP RD"
[2025-12-22 12:52:07] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-22 12:52:07] [INFO] Concatenating street name and type
[2025-12-22 12:52:07] [INFO]   -> Combined street name: TABLE TOP RD
[2025-12-22 12:52:07] [INFO] Built locationCoordinates from lat/lng: 36.11648,-85.16635
[2025-12-22 12:52:07] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2025003136\n2025002527","dispatchRunNumber":"2025003136\n2025002527","incidentTypeValue1":"DIABETIC PROBLEM","incidentLocationStreetNumber":384,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.11648000000000280351741821505129337310791015625,"nERISIncidentLongitude":-85.166349999999994224708643741905689239501953125,"alarm":"2025-12-22 06:51:20","dispatched":"2025-12-22 06:52:03","incidentLocationCross":"CADE RD\/HIGH FLATS RD","cADVehicleID":"PCFR","timedispatch":"2025-12-22 06:52:03","policeReportNumber":"20250140042\n20250140040\n20250140041\n20250140043","dispatchNotes":"[APCO INTELLICOMM] Caller Name: VERIZON  [12\/22\/25 06:52:00 PSUTIL01] [EMS] JESSIE WALKER  60 YOM  [12\/22\/25 06:51:43 KBURTON] [APCO INTELLICOMM] Case ID: IggiD_FubZ Caller Phone: 9313037299 Caller Name: VERIZON Incident Location: 384 TABLE TOP RD Incident Location Detail: CADE RD\/HIGH FLATS RD Nature: DIABETIC PROBLEM Incident #: 20250140040 CAD Call Taker: KBURTON Chief Complaint: (empty)  [12\/22\/25 06:51:21 PSUTIL01] Event spawned from DIABETIC PROBLEM.  [12\/22\/2025 06:51:20 KBURTON] DIABETIC HX  LOW BS  UNRESPONSIVE  [12\/22\/25 06:51:16 KBURTON]]","cADLog":"[APCO INTELLICOMM] Caller Name: VERIZON  [12\/22\/25 06:52:00 PSUTIL01] [EMS] JESSIE WALKER  60 YOM  [12\/22\/25 06:51:43 KBURTON] [APCO INTELLICOMM] Case ID: IggiD_FubZ Caller Phone: 9313037299 Caller Name: VERIZON Incident Location: 384 TABLE TOP RD Incident Location Detail: CADE RD\/HIGH FLATS RD Nature: DIABETIC PROBLEM Incident #: 20250140040 CAD Call Taker: KBURTON Chief Complaint: (empty)  [12\/22\/25 06:51:21 PSUTIL01] Event spawned from DIABETIC PROBLEM.  [12\/22\/2025 06:51:20 KBURTON] DIABETIC HX  LOW BS  UNRESPONSIVE  [12\/22\/25 06:51:16 KBURTON]]","incidentLocationCity":"MONTEREY","streetName":"TABLE TOP RD","incidentAddressTextVersionStreet":"384 TABLE TOP RD","locationCoordinates":"36.11648,-85.16635"}
[2025-12-22 12:52:07] [INFO] Number of extracted fields: 21
[2025-12-22 12:52:07] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2025-12-22 12:52:07] [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-22 12:52:07] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2025-12-22 12:52:07] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (position 1)
[2025-12-22 12:52:07] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department for AgencyCode 'PCFD'
[2025-12-22 12:52:07] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on AgencyCode 'PCFD'
[2025-12-22 12:52:07] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["EMS","PCSO","RESC"]
[2025-12-22 12:52:07] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-22 12:52:07] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-22 12:52:07] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-22 12:52:07] [INFO] Normalized cADNumber to first value: 2025003136
[2025-12-22 12:52:07] [INFO] Found existing IncidentTypeMapping with ID: 6937a13f0053c6dd7
[2025-12-22 12:52:11] [INFO] Created new Dispatches record with ID: 69493ef7cb6febf7c
[2025-12-22 12:52:11] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250140042_20251222_125206.XML
[2025-12-22 12:52:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250140042_20251222_125206.XML
[2025-12-22 12:57:45] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30561.xml
[2025-12-22 12:57:45] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30561.xml for user: 68d56363ec1209189
[2025-12-22 12:57:45] [INFO] File size: 1766 bytes
[2025-12-22 12:57:46] [INFO] Created FTPFiles record with ID: 6949404a3e6dbc56f
[2025-12-22 12:57:46] [INFO] About to extract fields from XML. File size: 1766 bytes
[2025-12-22 12:57:46] [INFO] Number of mappings: 21
[2025-12-22 12:57:46] [INFO] Starting XML parsing. Content length: 1766
[2025-12-22 12:57:46] [INFO] XML parsed successfully. Root element: Incident
[2025-12-22 12:57:46] [INFO] Processing 21 field mappings
[2025-12-22 12:57:46] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2025-12-22 12:57:46] [INFO]   -> Found value: 25-30561
[2025-12-22 12:57:46] [INFO]   -> Set field 'dispatchRunNumber' = "25-30561"
[2025-12-22 12:57:46] [INFO]   -> Set field 'cADNumber' = "25-30561"
[2025-12-22 12:57:46] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-22 12:57:46] [INFO]   -> Found value: 106
[2025-12-22 12:57:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 106
[2025-12-22 12:57:46] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-22 12:57:46] [INFO]   -> Found value: N KENNETT ST
[2025-12-22 12:57:46] [INFO]   -> Set field 'streetName' = "N KENNETT ST"
[2025-12-22 12:57:46] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-22 12:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 12:57:46] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-22 12:57:46] [INFO]   -> Found value: MORLEY
[2025-12-22 12:57:46] [INFO]   -> Set field 'incidentLocationCity' = "MORLEY"
[2025-12-22 12:57:46] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-22 12:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 12:57:46] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-22 12:57:46] [INFO]   -> Found value: MO
[2025-12-22 12:57:46] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2025-12-22 12:57:46] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-22 12:57:46] [INFO]   -> Found value: 63767
[2025-12-22 12:57:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63767
[2025-12-22 12:57:46] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-22 12:57:46] [INFO]   -> Found value: 0
[2025-12-22 12:57:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-22 12:57:46] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-22 12:57:46] [INFO]   -> Found value: 0
[2025-12-22 12:57:46] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-22 12:57:46] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-22 12:57:46] [INFO]   -> Found value: RESPIRATORY DISTRESS
[2025-12-22 12:57:46] [INFO]   -> Set field 'incidentTypeValue1' = "RESPIRATORY DISTRESS"
[2025-12-22 12:57:46] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-22 12:57:46] [INFO]   -> Found value: 12-22-2025 05:00:38|47 YOM TROUBLE BREATHING 12-22-2025 05:11:54|Disposition - Scott County Rural:  ...
[2025-12-22 12:57:46] [INFO]   -> Set field 'dispatchNotes' = "12-22-2025 05:00:38|47 YOM TROUBLE BREATHING 12-22-2025 05:11:54|Disposition - Scott County Rural:  RPT 12-22-2025 05:21:05|REQUESTED BY NORTH SCOTT EMS FOR CODE 12-22-2025 05:27:56|1739 ON SCENE 12-22-2025 05:43:28|SUBJECT IS J4 NOTIFYING CORONER 12-22-2025 05:45:23|CODY CAUDLE NOTIFIED 12-22-2025 06:13:44|ALL RURAL PERSONNEL CLEARING 12-22-2025 06:17:52|AMICK BURNETT REQUESTED AND CONTACTED 12-22-2025 06:35:14|AMICK BURNETT FUNERAL HOMES HAS 40 MINUTES ETA"
[2025-12-22 12:57:46] [INFO]   -> Set field 'cADLog' = "12-22-2025 05:00:38|47 YOM TROUBLE BREATHING 12-22-2025 05:11:54|Disposition - Scott County Rural:  RPT 12-22-2025 05:21:05|REQUESTED BY NORTH SCOTT EMS FOR CODE 12-22-2025 05:27:56|1739 ON SCENE 12-22-2025 05:43:28|SUBJECT IS J4 NOTIFYING CORONER 12-22-2025 05:45:23|CODY CAUDLE NOTIFIED 12-22-2025 06:13:44|ALL RURAL PERSONNEL CLEARING 12-22-2025 06:17:52|AMICK BURNETT REQUESTED AND CONTACTED 12-22-2025 06:35:14|AMICK BURNETT FUNERAL HOMES HAS 40 MINUTES ETA"
[2025-12-22 12:57:46] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-22 12:57:46] [INFO]   -> Found value: 12-22-2025T05:01:20
[2025-12-22 12:57:46] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T05:01:20
[2025-12-22 12:57:46] [ERROR] Error formatting datetime '2025-22-12T05:01:20': Failed to parse time string (2025-22-12T05:01:20) at position 6 (2): Unexpected character
[2025-12-22 12:57:46] [INFO]   -> Set field 'alarm' = null
[2025-12-22 12:57:46] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T05:01:20
[2025-12-22 12:57:46] [ERROR] Error formatting datetime '2025-22-12T05:01:20': Failed to parse time string (2025-22-12T05:01:20) at position 6 (2): Unexpected character
[2025-12-22 12:57:46] [INFO]   -> Set field 'dispatched' = null
[2025-12-22 12:57:46] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-22 12:57:46] [INFO]   -> Found value: 12-22-2025T05:33:21
[2025-12-22 12:57:46] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T05:33:21
[2025-12-22 12:57:46] [ERROR] Error formatting datetime '2025-22-12T05:33:21': Failed to parse time string (2025-22-12T05:33:21) at position 6 (2): Unexpected character
[2025-12-22 12:57:46] [INFO]   -> Set field 'onScene' = null
[2025-12-22 12:57:46] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-22 12:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 12:57:46] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-22 12:57:46] [INFO]   -> Found value: RURAL PAGE
[2025-12-22 12:57:46] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2025-12-22 12:57:46] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2025-12-22 12:57:46] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-22 12:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 12:57:46] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-22 12:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 12:57:46] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-22 12:57:46] [INFO]   -> Found value: 12-22-2025T06:57:25
[2025-12-22 12:57:46] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T06:57:25
[2025-12-22 12:57:46] [ERROR] Error formatting datetime '2025-22-12T06:57:25': Failed to parse time string (2025-22-12T06:57:25) at position 6 (2): Unexpected character
[2025-12-22 12:57:46] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 12:57:46] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-22 12:57:46] [INFO]   -> Found value: 12-22-2025T05:03:13
[2025-12-22 12:57:46] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T05:03:13
[2025-12-22 12:57:46] [ERROR] Error formatting datetime '2025-22-12T05:03:13': Failed to parse time string (2025-22-12T05:03:13) at position 6 (2): Unexpected character
[2025-12-22 12:57:46] [INFO]   -> Set field 'timedispatch' = null
[2025-12-22 12:57:46] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-22 12:57:46] [INFO]   -> Found value: SCRFD
[2025-12-22 12:57:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2025-12-22 12:57:46] [INFO] Finished extracting fields. Total fields extracted: 20
[2025-12-22 12:57:46] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-22 12:57:46] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-30561","cADNumber":"25-30561","incidentLocationStreetNumber":106,"streetName":"N KENNETT ST","incidentLocationCity":"MORLEY","incidentLocationStateName":"MO","nERISIncidentPostalCode":63767,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"RESPIRATORY DISTRESS","dispatchNotes":"12-22-2025 05:00:38|47 YOM TROUBLE BREATHING 12-22-2025 05:11:54|Disposition - Scott County Rural:  RPT 12-22-2025 05:21:05|REQUESTED BY NORTH SCOTT EMS FOR CODE 12-22-2025 05:27:56|1739 ON SCENE 12-22-2025 05:43:28|SUBJECT IS J4 NOTIFYING CORONER 12-22-2025 05:45:23|CODY CAUDLE NOTIFIED 12-22-2025 06:13:44|ALL RURAL PERSONNEL CLEARING 12-22-2025 06:17:52|AMICK BURNETT REQUESTED AND CONTACTED 12-22-2025 06:35:14|AMICK BURNETT FUNERAL HOMES HAS 40 MINUTES ETA","cADLog":"12-22-2025 05:00:38|47 YOM TROUBLE BREATHING 12-22-2025 05:11:54|Disposition - Scott County Rural:  RPT 12-22-2025 05:21:05|REQUESTED BY NORTH SCOTT EMS FOR CODE 12-22-2025 05:27:56|1739 ON SCENE 12-22-2025 05:43:28|SUBJECT IS J4 NOTIFYING CORONER 12-22-2025 05:45:23|CODY CAUDLE NOTIFIED 12-22-2025 06:13:44|ALL RURAL PERSONNEL CLEARING 12-22-2025 06:17:52|AMICK BURNETT REQUESTED AND CONTACTED 12-22-2025 06:35:14|AMICK BURNETT FUNERAL HOMES HAS 40 MINUTES ETA","alarm":null,"dispatched":null,"onScene":null,"cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2025-12-22 12:57:46] [INFO] Number of extracted fields: 21
[2025-12-22 12:57:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2025-12-22 12:57:46] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SCRFD', Parsed IDs = ["SCRFD"], Assigned Agencies count = 2
[2025-12-22 12:57:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2025-12-22 12:57:46] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (position 1)
[2025-12-22 12:57:46] [INFO] Found SAASClient match: ID = 6643bdb30659f00d8, Name = Scott County Rural Fire Protection District for AgencyCode 'SCRFD'
[2025-12-22 12:57:46] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) based on AgencyCode 'SCRFD'
[2025-12-22 12:57:46] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-22 12:57:46] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-22 12:57:46] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2025-12-22 12:57:46] [INFO] Found existing IncidentTypeMapping with ID: 694459012cb7ddd64
[2025-12-22 12:57:46] [INFO] Found existing Dispatch with cADNumber '25-30561', ID: 694927966c1e1c012 - will update instead of create
[2025-12-22 12:57:47] [INFO] Updated existing Dispatches record with ID: 694927966c1e1c012
[2025-12-22 12:57:47] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30561.xml
[2025-12-22 12:57:47] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30561.xml
[2025-12-22 15:57:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250140117_20251222_155746.XML
[2025-12-22 15:57:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250140117_20251222_155746.XML for user: 68f1466aed072ad4a
[2025-12-22 15:57:46] [INFO] File size: 4827 bytes
[2025-12-22 15:57:46] [INFO] Created FTPFiles record with ID: 69496a7ad207d59e5
[2025-12-22 15:57:46] [INFO] About to extract fields from XML. File size: 4827 bytes
[2025-12-22 15:57:46] [INFO] Number of mappings: 28
[2025-12-22 15:57:46] [INFO] Starting XML parsing. Content length: 4827
[2025-12-22 15:57:46] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-22 15:57:46] [INFO] Processing 28 field mappings
[2025-12-22 15:57:46] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-22 15:57:46] [INFO]   -> Found value: PCFD
[2025-12-22 15:57:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2025-12-22 15:57:46] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 15:57:46] [INFO]   -> Found value: 2025003137
[2025-12-22 15:57:46] [INFO]   -> Set field 'incidentInternalId' = "2025003137"
[2025-12-22 15:57:46] [INFO]   -> Set field 'dispatchRunNumber' = "2025003137"
[2025-12-22 15:57:46] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-22 15:57:46] [INFO]   -> Found value: SMOKE ALARM ACTIVATION
[2025-12-22 15:57:46] [INFO]   -> Set field 'incidentTypeValue1' = "SMOKE ALARM ACTIVATION"
[2025-12-22 15:57:46] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-22 15:57:46] [INFO]   -> Found value: 3531
[2025-12-22 15:57:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3531
[2025-12-22 15:57:46] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-22 15:57:46] [INFO]   -> Found value: TN
[2025-12-22 15:57:46] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 15:57:46] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-22 15:57:46] [INFO]   -> Found value: 38506
[2025-12-22 15:57:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-22 15:57:46] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-22 15:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 15:57:46] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-22 15:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 15:57:46] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-22 15:57:46] [INFO]   -> Found value: 36.10978
[2025-12-22 15:57:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.109780000000000654836185276508331298828125
[2025-12-22 15:57:46] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-22 15:57:46] [INFO]   -> Found value: -85.57399
[2025-12-22 15:57:46] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5739899999999948931872495450079441070556640625
[2025-12-22 15:57:46] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-22 15:57:46] [INFO]   -> Found value: 2025-12-22 09:54:44
[2025-12-22 15:57:46] [INFO]   -> Set field 'alarm' = "2025-12-22 09:54:44"
[2025-12-22 15:57:46] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-22 15:57:46] [INFO]   -> Found value: 2025-12-22 09:57:38
[2025-12-22 15:57:46] [INFO]   -> Set field 'dispatched' = "2025-12-22 09:57:38"
[2025-12-22 15:57:46] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-22 15:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 15:57:46] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-22 15:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 15:57:46] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-22 15:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 15:57:46] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-22 15:57:46] [INFO]   -> Found value: MILLSTONE CT/BROOKMEADE CT
[2025-12-22 15:57:46] [INFO]   -> Set field 'incidentLocationCross' = "MILLSTONE CT\/BROOKMEADE CT"
[2025-12-22 15:57:46] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-22 15:57:46] [INFO]   -> Found value: EN13
[2025-12-22 15:57:46] [INFO]   -> Set field 'cADVehicleID' = "EN13"
[2025-12-22 15:57:46] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-22 15:57:46] [INFO]   -> Found value: 2025-12-22 09:57:38
[2025-12-22 15:57:46] [INFO]   -> Set field 'timedispatch' = "2025-12-22 09:57:38"
[2025-12-22 15:57:46] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-22 15:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 15:57:46] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-22 15:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 15:57:46] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-22 15:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 15:57:46] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-22 15:57:46] [INFO]   -> No value found (null or empty)
[2025-12-22 15:57:46] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-22 15:57:46] [INFO]   -> Found value: 20250140117
[2025-12-22 15:57:46] [INFO]   -> Set field 'policeReportNumber' = "20250140117"
[2025-12-22 15:57:46] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-22 15:57:46] [INFO]   -> Found value: REQUEST NON EMERGENCY  [12/22/25 09:56:03 MCLAYBURN2] NO SMELL OF SMOKE SMOKE DETECTORS AND CO2 DETE...
[2025-12-22 15:57:46] [INFO]   -> Set field 'dispatchNotes' = "REQUEST NON EMERGENCY  [12\/22\/25 09:56:03 MCLAYBURN2] NO SMELL OF SMOKE SMOKE DETECTORS AND CO2 DETECTOR GOING OFF  [12\/22\/25 09:55:21 MCLAYBURN2]"
[2025-12-22 15:57:46] [INFO]   -> Set field 'cADLog' = "REQUEST NON EMERGENCY  [12\/22\/25 09:56:03 MCLAYBURN2] NO SMELL OF SMOKE SMOKE DETECTORS AND CO2 DETECTOR GOING OFF  [12\/22\/25 09:55:21 MCLAYBURN2]"
[2025-12-22 15:57:46] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-22 15:57:46] [INFO]   -> Found value: COOKEVILLE
[2025-12-22 15:57:46] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-22 15:57:46] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-22 15:57:46] [INFO]   -> Found value: BROOKSTONE
[2025-12-22 15:57:46] [INFO]   -> Set field 'streetName' = "BROOKSTONE"
[2025-12-22 15:57:46] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-22 15:57:46] [INFO]   -> Found value: DR
[2025-12-22 15:57:46] [INFO]   -> Set field 'streetType' = "DR"
[2025-12-22 15:57:46] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-22 15:57:46] [INFO]   -> Found value: 3531 BROOKSTONE DR
[2025-12-22 15:57:46] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3531 BROOKSTONE DR"
[2025-12-22 15:57:46] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-22 15:57:46] [INFO] Concatenating street name and type
[2025-12-22 15:57:46] [INFO]   -> Combined street name: BROOKSTONE DR
[2025-12-22 15:57:46] [INFO] Built locationCoordinates from lat/lng: 36.10978,-85.57399
[2025-12-22 15:57:46] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2025003137","dispatchRunNumber":"2025003137","incidentTypeValue1":"SMOKE ALARM ACTIVATION","incidentLocationStreetNumber":3531,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.109780000000000654836185276508331298828125,"nERISIncidentLongitude":-85.5739899999999948931872495450079441070556640625,"alarm":"2025-12-22 09:54:44","dispatched":"2025-12-22 09:57:38","incidentLocationCross":"MILLSTONE CT\/BROOKMEADE CT","cADVehicleID":"EN13","timedispatch":"2025-12-22 09:57:38","policeReportNumber":"20250140117","dispatchNotes":"REQUEST NON EMERGENCY  [12\/22\/25 09:56:03 MCLAYBURN2] NO SMELL OF SMOKE SMOKE DETECTORS AND CO2 DETECTOR GOING OFF  [12\/22\/25 09:55:21 MCLAYBURN2]","cADLog":"REQUEST NON EMERGENCY  [12\/22\/25 09:56:03 MCLAYBURN2] NO SMELL OF SMOKE SMOKE DETECTORS AND CO2 DETECTOR GOING OFF  [12\/22\/25 09:55:21 MCLAYBURN2]","incidentLocationCity":"COOKEVILLE","streetName":"BROOKSTONE DR","incidentAddressTextVersionStreet":"3531 BROOKSTONE DR","locationCoordinates":"36.10978,-85.57399"}
[2025-12-22 15:57:46] [INFO] Number of extracted fields: 21
[2025-12-22 15:57:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2025-12-22 15:57:46] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Assigned Agencies count = 4
[2025-12-22 15:57:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2025-12-22 15:57:46] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (position 1)
[2025-12-22 15:57:47] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department for AgencyCode 'PCFD'
[2025-12-22 15:57:47] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on AgencyCode 'PCFD'
[2025-12-22 15:57:47] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-22 15:57:47] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-22 15:57:47] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-22 15:57:47] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"SMOKE ALARM ACTIVATION","saasclientId":"68eeb686225c40db4","name":"SMOKE ALARM ACTIVATION"}
[2025-12-22 15:57:47] [INFO] Created new IncidentTypeMapping with ID: 69496a7be98ed14fb
[2025-12-22 15:57:53] [INFO] Created new Dispatches record with ID: 69496a7ea201d2005
[2025-12-22 15:57:53] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250140117_20251222_155746.XML
[2025-12-22 15:57:53] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250140117_20251222_155746.XML
[2025-12-22 17:26:17] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-30586.xml
[2025-12-22 17:26:17] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-30586.xml for user: 68d56363ec1209189
[2025-12-22 17:26:17] [INFO] File size: 1961 bytes
[2025-12-22 17:26:17] [INFO] Created FTPFiles record with ID: 69497f396a36b8812
[2025-12-22 17:26:17] [INFO] About to extract fields from XML. File size: 1961 bytes
[2025-12-22 17:26:17] [INFO] Number of mappings: 21
[2025-12-22 17:26:17] [INFO] Starting XML parsing. Content length: 1961
[2025-12-22 17:26:17] [INFO] XML parsed successfully. Root element: Incident
[2025-12-22 17:26:17] [INFO] Processing 21 field mappings
[2025-12-22 17:26:17] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2025-12-22 17:26:17] [INFO]   -> Found value: 25-30586
[2025-12-22 17:26:17] [INFO]   -> Set field 'dispatchRunNumber' = "25-30586"
[2025-12-22 17:26:17] [INFO]   -> Set field 'cADNumber' = "25-30586"
[2025-12-22 17:26:17] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-22 17:26:17] [INFO]   -> Found value: 406
[2025-12-22 17:26:17] [INFO]   -> Set field 'incidentLocationStreetNumber' = 406
[2025-12-22 17:26:17] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-22 17:26:17] [INFO]   -> Found value: MARIAN AVE
[2025-12-22 17:26:17] [INFO]   -> Set field 'streetName' = "MARIAN AVE"
[2025-12-22 17:26:17] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-22 17:26:17] [INFO]   -> No value found (null or empty)
[2025-12-22 17:26:17] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-22 17:26:17] [INFO]   -> Found value: SIKESTON
[2025-12-22 17:26:17] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2025-12-22 17:26:17] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-22 17:26:17] [INFO]   -> No value found (null or empty)
[2025-12-22 17:26:17] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-22 17:26:17] [INFO]   -> Found value: MO
[2025-12-22 17:26:17] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2025-12-22 17:26:17] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-22 17:26:17] [INFO]   -> Found value: 63801
[2025-12-22 17:26:17] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2025-12-22 17:26:17] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-22 17:26:17] [INFO]   -> Found value: 0
[2025-12-22 17:26:17] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-22 17:26:17] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-22 17:26:17] [INFO]   -> Found value: 0
[2025-12-22 17:26:17] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-22 17:26:17] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-22 17:26:17] [INFO]   -> Found value: FIRE-ALARM MECH
[2025-12-22 17:26:17] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-ALARM MECH"
[2025-12-22 17:26:17] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-22 17:26:17] [INFO]   -> Found value: 12-22-2025 11:21:17|SHOWING SMOKE DETECTOR  12-22-2025 11:24:40|ONE STORY NOTHING SHOWING 12-22-2025...
[2025-12-22 17:26:17] [INFO]   -> Set field 'dispatchNotes' = "12-22-2025 11:21:17|SHOWING SMOKE DETECTOR  12-22-2025 11:24:40|ONE STORY NOTHING SHOWING 12-22-2025 11:25:02|OWNER WAS COOKING"
[2025-12-22 17:26:17] [INFO]   -> Set field 'cADLog' = "12-22-2025 11:21:17|SHOWING SMOKE DETECTOR  12-22-2025 11:24:40|ONE STORY NOTHING SHOWING 12-22-2025 11:25:02|OWNER WAS COOKING"
[2025-12-22 17:26:17] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-22 17:26:17] [INFO]   -> Found value: 12-22-2025T11:22:12
[2025-12-22 17:26:17] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T11:22:12
[2025-12-22 17:26:17] [ERROR] Error formatting datetime '2025-22-12T11:22:12': Failed to parse time string (2025-22-12T11:22:12) at position 6 (2): Unexpected character
[2025-12-22 17:26:17] [INFO]   -> Set field 'alarm' = null
[2025-12-22 17:26:17] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T11:22:12
[2025-12-22 17:26:17] [ERROR] Error formatting datetime '2025-22-12T11:22:12': Failed to parse time string (2025-22-12T11:22:12) at position 6 (2): Unexpected character
[2025-12-22 17:26:17] [INFO]   -> Set field 'dispatched' = null
[2025-12-22 17:26:17] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-22 17:26:17] [INFO]   -> No value found (null or empty)
[2025-12-22 17:26:17] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-22 17:26:17] [INFO]   -> No value found (null or empty)
[2025-12-22 17:26:17] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-22 17:26:17] [INFO]   -> Found value: ENG2
[2025-12-22 17:26:17] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2025-12-22 17:26:17] [INFO]   -> Set field 'name' = "ENG2"
[2025-12-22 17:26:17] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-22 17:26:17] [INFO]   -> Found value: 12-22-2025T11:24:02
[2025-12-22 17:26:17] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T11:24:02
[2025-12-22 17:26:17] [ERROR] Error formatting datetime '2025-22-12T11:24:02': Failed to parse time string (2025-22-12T11:24:02) at position 6 (2): Unexpected character
[2025-12-22 17:26:17] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-22 17:26:17] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-22 17:26:17] [INFO]   -> No value found (null or empty)
[2025-12-22 17:26:17] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-22 17:26:17] [INFO]   -> Found value: 12-22-2025T11:26:00
[2025-12-22 17:26:17] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T11:26:00
[2025-12-22 17:26:17] [ERROR] Error formatting datetime '2025-22-12T11:26:00': Failed to parse time string (2025-22-12T11:26:00) at position 6 (2): Unexpected character
[2025-12-22 17:26:17] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 17:26:17] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-22 17:26:17] [INFO]   -> Found value: 12-22-2025T11:24:00
[2025-12-22 17:26:17] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T11:24:00
[2025-12-22 17:26:17] [ERROR] Error formatting datetime '2025-22-12T11:24:00': Failed to parse time string (2025-22-12T11:24:00) at position 6 (2): Unexpected character
[2025-12-22 17:26:17] [INFO]   -> Set field 'timedispatch' = null
[2025-12-22 17:26:17] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-22 17:26:17] [INFO]   -> Found value: SDPSFD
[2025-12-22 17:26:17] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2025-12-22 17:26:17] [INFO] Finished extracting fields. Total fields extracted: 20
[2025-12-22 17:26:17] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-22 17:26:17] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-30586","cADNumber":"25-30586","incidentLocationStreetNumber":406,"streetName":"MARIAN AVE","incidentLocationCity":"SIKESTON","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-ALARM MECH","dispatchNotes":"12-22-2025 11:21:17|SHOWING SMOKE DETECTOR  12-22-2025 11:24:40|ONE STORY NOTHING SHOWING 12-22-2025 11:25:02|OWNER WAS COOKING","cADLog":"12-22-2025 11:21:17|SHOWING SMOKE DETECTOR  12-22-2025 11:24:40|ONE STORY NOTHING SHOWING 12-22-2025 11:25:02|OWNER WAS COOKING","alarm":null,"dispatched":null,"cADVehicleID":"ENG2","name":"ENG2","timeenroutetoscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2025-12-22 17:26:17] [INFO] Number of extracted fields: 21
[2025-12-22 17:26:17] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2025-12-22 17:26:17] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Assigned Agencies count = 2
[2025-12-22 17:26:17] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2025-12-22 17:26:17] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (position 1)
[2025-12-22 17:26:17] [INFO] Found SAASClient match: ID = 6772cab7157b2ebde, Name = Sikeston DPS for AgencyCode 'SDPSFD'
[2025-12-22 17:26:17] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) based on AgencyCode 'SDPSFD'
[2025-12-22 17:26:17] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-22 17:26:17] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-22 17:26:17] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2025-12-22 17:26:17] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e872e5ae13
[2025-12-22 17:26:19] [INFO] Created new Dispatches record with ID: 69497f3a31389838f
[2025-12-22 17:26:19] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-30586.xml
[2025-12-22 17:26:19] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-30586.xml
[2025-12-22 18:28:36] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20250140190_20251222_182836.XML
[2025-12-22 18:28:36] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20250140190_20251222_182836.XML for user: 68f1466aed072ad4a
[2025-12-22 18:28:36] [INFO] File size: 4883 bytes
[2025-12-22 18:28:36] [INFO] Created FTPFiles record with ID: 69498dd4664fb3015
[2025-12-22 18:28:36] [INFO] About to extract fields from XML. File size: 4883 bytes
[2025-12-22 18:28:36] [INFO] Number of mappings: 28
[2025-12-22 18:28:36] [INFO] Starting XML parsing. Content length: 4883
[2025-12-22 18:28:36] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-22 18:28:36] [INFO] Processing 28 field mappings
[2025-12-22 18:28:36] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-22 18:28:36] [INFO]   -> Found value: AFD
[2025-12-22 18:28:36] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2025-12-22 18:28:36] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-22 18:28:36] [INFO]   -> Found value: 2025000597
[2025-12-22 18:28:36] [INFO]   -> Set field 'incidentInternalId' = "2025000597"
[2025-12-22 18:28:36] [INFO]   -> Set field 'dispatchRunNumber' = "2025000597"
[2025-12-22 18:28:36] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-22 18:28:36] [INFO]   -> Found value: MANPOWER - EMS ASSIST
[2025-12-22 18:28:36] [INFO]   -> Set field 'incidentTypeValue1' = "MANPOWER - EMS ASSIST"
[2025-12-22 18:28:36] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-22 18:28:36] [INFO]   -> Found value: 285
[2025-12-22 18:28:36] [INFO]   -> Set field 'incidentLocationStreetNumber' = 285
[2025-12-22 18:28:36] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-22 18:28:36] [INFO]   -> Found value: TN
[2025-12-22 18:28:36] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-22 18:28:36] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-22 18:28:36] [INFO]   -> Found value: 38506
[2025-12-22 18:28:36] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-22 18:28:36] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-22 18:28:36] [INFO]   -> No value found (null or empty)
[2025-12-22 18:28:36] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-22 18:28:36] [INFO]   -> Found value: C
[2025-12-22 18:28:36] [INFO]   -> Set field 'incidentLocationApt' = "C"
[2025-12-22 18:28:36] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-22 18:28:36] [INFO]   -> Found value: 36.19740
[2025-12-22 18:28:36] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1974000000000017962520360015332698822021484375
[2025-12-22 18:28:36] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-22 18:28:36] [INFO]   -> Found value: -85.44326
[2025-12-22 18:28:36] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4432599999999951023710309527814388275146484375
[2025-12-22 18:28:36] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-22 18:28:36] [INFO]   -> Found value: 2025-12-22 12:27:24
[2025-12-22 18:28:36] [INFO]   -> Set field 'alarm' = "2025-12-22 12:27:24"
[2025-12-22 18:28:36] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-22 18:28:36] [INFO]   -> Found value: 2025-12-22 12:28:30
[2025-12-22 18:28:36] [INFO]   -> Set field 'dispatched' = "2025-12-22 12:28:30"
[2025-12-22 18:28:36] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-22 18:28:36] [INFO]   -> No value found (null or empty)
[2025-12-22 18:28:36] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-22 18:28:36] [INFO]   -> No value found (null or empty)
[2025-12-22 18:28:36] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-22 18:28:36] [INFO]   -> No value found (null or empty)
[2025-12-22 18:28:36] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-22 18:28:36] [INFO]   -> Found value: HARP AVE/PATTON ST
[2025-12-22 18:28:36] [INFO]   -> Set field 'incidentLocationCross' = "HARP AVE\/PATTON ST"
[2025-12-22 18:28:36] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-22 18:28:36] [INFO]   -> Found value: AEN1
[2025-12-22 18:28:36] [INFO]   -> Set field 'cADVehicleID' = "AEN1"
[2025-12-22 18:28:36] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-22 18:28:36] [INFO]   -> Found value: 2025-12-22 12:28:30
[2025-12-22 18:28:36] [INFO]   -> Set field 'timedispatch' = "2025-12-22 12:28:30"
[2025-12-22 18:28:36] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-22 18:28:36] [INFO]   -> No value found (null or empty)
[2025-12-22 18:28:36] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-22 18:28:36] [INFO]   -> No value found (null or empty)
[2025-12-22 18:28:36] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-22 18:28:36] [INFO]   -> No value found (null or empty)
[2025-12-22 18:28:36] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-22 18:28:36] [INFO]   -> No value found (null or empty)
[2025-12-22 18:28:36] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-22 18:28:36] [INFO]   -> Found value: 20250140190
[2025-12-22 18:28:36] [INFO]   -> Set field 'policeReportNumber' = "20250140190"
[2025-12-22 18:28:36] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-22 18:28:36] [INFO]   -> Found value: NON-EMERGENCY MANPOWER REQUESTED BY 707  [12/22/25 12:27:54 PFOISTER]
[2025-12-22 18:28:36] [INFO]   -> Set field 'dispatchNotes' = "NON-EMERGENCY MANPOWER REQUESTED BY 707  [12\/22\/25 12:27:54 PFOISTER]"
[2025-12-22 18:28:36] [INFO]   -> Set field 'cADLog' = "NON-EMERGENCY MANPOWER REQUESTED BY 707  [12\/22\/25 12:27:54 PFOISTER]"
[2025-12-22 18:28:36] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-22 18:28:36] [INFO]   -> Found value: ALGOOD
[2025-12-22 18:28:36] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2025-12-22 18:28:36] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2025-12-22 18:28:36] [INFO]   -> Found value: MAIN
[2025-12-22 18:28:36] [INFO]   -> Set field 'streetName' = "MAIN"
[2025-12-22 18:28:36] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2025-12-22 18:28:36] [INFO]   -> Found value: ST
[2025-12-22 18:28:36] [INFO]   -> Set field 'streetType' = "ST"
[2025-12-22 18:28:36] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2025-12-22 18:28:36] [INFO]   -> Found value: 285-C E MAIN ST
[2025-12-22 18:28:36] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "285-C E MAIN ST"
[2025-12-22 18:28:36] [INFO] Finished extracting fields. Total fields extracted: 22
[2025-12-22 18:28:36] [INFO] Concatenating street name and type
[2025-12-22 18:28:36] [INFO]   -> Combined street name: MAIN ST
[2025-12-22 18:28:36] [INFO] Built locationCoordinates from lat/lng: 36.1974,-85.44326
[2025-12-22 18:28:36] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2025000597","dispatchRunNumber":"2025000597","incidentTypeValue1":"MANPOWER - EMS ASSIST","incidentLocationStreetNumber":285,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"incidentLocationApt":"C","nERISIncidentLatitude":36.1974000000000017962520360015332698822021484375,"nERISIncidentLongitude":-85.4432599999999951023710309527814388275146484375,"alarm":"2025-12-22 12:27:24","dispatched":"2025-12-22 12:28:30","incidentLocationCross":"HARP AVE\/PATTON ST","cADVehicleID":"AEN1","timedispatch":"2025-12-22 12:28:30","policeReportNumber":"20250140190","dispatchNotes":"NON-EMERGENCY MANPOWER REQUESTED BY 707  [12\/22\/25 12:27:54 PFOISTER]","cADLog":"NON-EMERGENCY MANPOWER REQUESTED BY 707  [12\/22\/25 12:27:54 PFOISTER]","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"285-C E MAIN ST","locationCoordinates":"36.1974,-85.44326"}
[2025-12-22 18:28:36] [INFO] Number of extracted fields: 22
[2025-12-22 18:28:36] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2025-12-22 18:28:36] [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
[2025-12-22 18:28:36] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2025-12-22 18:28:36] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0)
[2025-12-22 18:28:36] [INFO] Found SAASClient match: ID = 68910627445d6e167, Name = Algood Fire Department for AgencyCode 'AFD'
[2025-12-22 18:28:36] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2025-12-22 18:28:36] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2025-12-22 18:28:36] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2025-12-22 18:28:36] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2025-12-22 18:28:37] [INFO] Found existing IncidentTypeMapping with ID: 69471182900dbaefb
[2025-12-22 18:28:40] [INFO] Created new Dispatches record with ID: 69498dd54c6ff1657
[2025-12-22 18:28:40] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20250140190_20251222_182836.XML
[2025-12-22 18:28:40] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20250140190_20251222_182836.XML
[2025-12-22 20:08:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30595.xml
[2025-12-22 20:08:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30595.xml for user: 68d56363ec1209189
[2025-12-22 20:08:21] [INFO] File size: 2783 bytes
[2025-12-22 20:08:22] [INFO] Created FTPFiles record with ID: 6949a5362e2ddc118
[2025-12-22 20:08:22] [INFO] About to extract fields from XML. File size: 2783 bytes
[2025-12-22 20:08:22] [INFO] Number of mappings: 21
[2025-12-22 20:08:22] [INFO] Starting XML parsing. Content length: 2783
[2025-12-22 20:08:22] [INFO] XML parsed successfully. Root element: Incident
[2025-12-22 20:08:22] [INFO] Processing 21 field mappings
[2025-12-22 20:08:22] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2025-12-22 20:08:22] [INFO]   -> Found value: 25-30595
[2025-12-22 20:08:22] [INFO]   -> Set field 'dispatchRunNumber' = "25-30595"
[2025-12-22 20:08:22] [INFO]   -> Set field 'cADNumber' = "25-30595"
[2025-12-22 20:08:22] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-22 20:08:22] [INFO]   -> Found value: 395
[2025-12-22 20:08:22] [INFO]   -> Set field 'incidentLocationStreetNumber' = 395
[2025-12-22 20:08:22] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-22 20:08:22] [INFO]   -> Found value: SWANK ST
[2025-12-22 20:08:22] [INFO]   -> Set field 'streetName' = "SWANK ST"
[2025-12-22 20:08:22] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-22 20:08:22] [INFO]   -> No value found (null or empty)
[2025-12-22 20:08:22] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-22 20:08:22] [INFO]   -> Found value: DIEHLSTADT
[2025-12-22 20:08:22] [INFO]   -> Set field 'incidentLocationCity' = "DIEHLSTADT"
[2025-12-22 20:08:22] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-22 20:08:22] [INFO]   -> No value found (null or empty)
[2025-12-22 20:08:22] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-22 20:08:22] [INFO]   -> No value found (null or empty)
[2025-12-22 20:08:22] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-22 20:08:22] [INFO]   -> No value found (null or empty)
[2025-12-22 20:08:22] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-22 20:08:22] [INFO]   -> Found value: 0
[2025-12-22 20:08:22] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-22 20:08:22] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-22 20:08:22] [INFO]   -> Found value: 0
[2025-12-22 20:08:22] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-22 20:08:22] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-22 20:08:22] [INFO]   -> Found value: FIRE-STRUCTURE
[2025-12-22 20:08:22] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-STRUCTURE"
[2025-12-22 20:08:22] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-22 20:08:22] [INFO]   -> Found value: 12-22-2025 12:32:30|STRUCTURE FIRE 12-22-2025 12:37:47|1711 EN ROUTE 12-22-2025 12:38:56|CORRECTION ...
[2025-12-22 20:08:22] [INFO]   -> Set field 'dispatchNotes' = "12-22-2025 12:32:30|STRUCTURE FIRE 12-22-2025 12:37:47|1711 EN ROUTE 12-22-2025 12:38:56|CORRECTION 1751 EN ROUTE X1 12-22-2025 12:42:54|CHARLESTON WORKING ON CHARLESTON FIRE 12-22-2025 12:43:04|RURAL UNITS ON FD1 12-22-2025 12:45:43|1711 ONSCENE ; CHARLESTON ON SCENE ONE STORY STRUCTURE SMOKE SHOWING 12-22-2025 12:48:39|1751 ON SCEDNE 12-22-2025 12:54:22|1705 COMMAND TRANSFERRED FROM CHARLETON TO 1705 CANCEL ALL NOT ON SCENE 12-22-2025 13:17:08|PER 349 SEMO ELECTRIC ON SCENE 12-22-2025 13:26:06|Disposition - Scott County S.O. (MO):  NRN\nDisposition - SSCA:  RPT\nNotes on Close: NO PT CONTACT 12-22-2025 14:03:39|Disposition - SSCA UNIT:  AD"
[2025-12-22 20:08:22] [INFO]   -> Set field 'cADLog' = "12-22-2025 12:32:30|STRUCTURE FIRE 12-22-2025 12:37:47|1711 EN ROUTE 12-22-2025 12:38:56|CORRECTION 1751 EN ROUTE X1 12-22-2025 12:42:54|CHARLESTON WORKING ON CHARLESTON FIRE 12-22-2025 12:43:04|RURAL UNITS ON FD1 12-22-2025 12:45:43|1711 ONSCENE ; CHARLESTON ON SCENE ONE STORY STRUCTURE SMOKE SHOWING 12-22-2025 12:48:39|1751 ON SCEDNE 12-22-2025 12:54:22|1705 COMMAND TRANSFERRED FROM CHARLETON TO 1705 CANCEL ALL NOT ON SCENE 12-22-2025 13:17:08|PER 349 SEMO ELECTRIC ON SCENE 12-22-2025 13:26:06|Disposition - Scott County S.O. (MO):  NRN\nDisposition - SSCA:  RPT\nNotes on Close: NO PT CONTACT 12-22-2025 14:03:39|Disposition - SSCA UNIT:  AD"
[2025-12-22 20:08:22] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-22 20:08:22] [INFO]   -> Found value: 12-22-2025T12:31:25
[2025-12-22 20:08:22] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T12:31:25
[2025-12-22 20:08:22] [ERROR] Error formatting datetime '2025-22-12T12:31:25': Failed to parse time string (2025-22-12T12:31:25) at position 6 (2): Unexpected character
[2025-12-22 20:08:22] [INFO]   -> Set field 'alarm' = null
[2025-12-22 20:08:22] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T12:31:25
[2025-12-22 20:08:22] [ERROR] Error formatting datetime '2025-22-12T12:31:25': Failed to parse time string (2025-22-12T12:31:25) at position 6 (2): Unexpected character
[2025-12-22 20:08:22] [INFO]   -> Set field 'dispatched' = null
[2025-12-22 20:08:22] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-22 20:08:22] [INFO]   -> Found value: 12-22-2025T12:46:49
[2025-12-22 20:08:22] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T12:46:49
[2025-12-22 20:08:22] [ERROR] Error formatting datetime '2025-22-12T12:46:49': Failed to parse time string (2025-22-12T12:46:49) at position 6 (2): Unexpected character
[2025-12-22 20:08:22] [INFO]   -> Set field 'onScene' = null
[2025-12-22 20:08:22] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-22 20:08:22] [INFO]   -> Found value: 12-22-2025T14:07:37
[2025-12-22 20:08:22] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T14:07:37
[2025-12-22 20:08:22] [ERROR] Error formatting datetime '2025-22-12T14:07:37': Failed to parse time string (2025-22-12T14:07:37) at position 6 (2): Unexpected character
[2025-12-22 20:08:22] [INFO]   -> Set field 'cleared' = null
[2025-12-22 20:08:22] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T14:07:37
[2025-12-22 20:08:22] [ERROR] Error formatting datetime '2025-22-12T14:07:37': Failed to parse time string (2025-22-12T14:07:37) at position 6 (2): Unexpected character
[2025-12-22 20:08:22] [INFO]   -> Set field 'inService' = null
[2025-12-22 20:08:22] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-22 20:08:22] [INFO]   -> Found value: 1761
[2025-12-22 20:08:22] [INFO]   -> Set field 'cADVehicleID' = 1761
[2025-12-22 20:08:22] [INFO]   -> Set field 'name' = "1761"
[2025-12-22 20:08:22] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-22 20:08:22] [INFO]   -> Found value: 12-22-2025T12:38:41
[2025-12-22 20:08:22] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T12:38:41
[2025-12-22 20:08:22] [ERROR] Error formatting datetime '2025-22-12T12:38:41': Failed to parse time string (2025-22-12T12:38:41) at position 6 (2): Unexpected character
[2025-12-22 20:08:22] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-22 20:08:22] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-22 20:08:22] [INFO]   -> No value found (null or empty)
[2025-12-22 20:08:22] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-22 20:08:22] [INFO]   -> Found value: 12-22-2025T12:39:00
[2025-12-22 20:08:22] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T12:39:00
[2025-12-22 20:08:22] [ERROR] Error formatting datetime '2025-22-12T12:39:00': Failed to parse time string (2025-22-12T12:39:00) at position 6 (2): Unexpected character
[2025-12-22 20:08:22] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 20:08:22] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-22 20:08:22] [INFO]   -> Found value: 12-22-2025T12:38:39
[2025-12-22 20:08:22] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T12:38:39
[2025-12-22 20:08:22] [ERROR] Error formatting datetime '2025-22-12T12:38:39': Failed to parse time string (2025-22-12T12:38:39) at position 6 (2): Unexpected character
[2025-12-22 20:08:22] [INFO]   -> Set field 'timedispatch' = null
[2025-12-22 20:08:22] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-22 20:08:22] [INFO]   -> Found value: SCRFD
[2025-12-22 20:08:22] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2025-12-22 20:08:22] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-22 20:08:22] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-22 20:08:22] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-30595","cADNumber":"25-30595","incidentLocationStreetNumber":395,"streetName":"SWANK ST","incidentLocationCity":"DIEHLSTADT","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-STRUCTURE","dispatchNotes":"12-22-2025 12:32:30|STRUCTURE FIRE 12-22-2025 12:37:47|1711 EN ROUTE 12-22-2025 12:38:56|CORRECTION 1751 EN ROUTE X1 12-22-2025 12:42:54|CHARLESTON WORKING ON CHARLESTON FIRE 12-22-2025 12:43:04|RURAL UNITS ON FD1 12-22-2025 12:45:43|1711 ONSCENE ; CHARLESTON ON SCENE ONE STORY STRUCTURE SMOKE SHOWING 12-22-2025 12:48:39|1751 ON SCEDNE 12-22-2025 12:54:22|1705 COMMAND TRANSFERRED FROM CHARLETON TO 1705 CANCEL ALL NOT ON SCENE 12-22-2025 13:17:08|PER 349 SEMO ELECTRIC ON SCENE 12-22-2025 13:26:06|Disposition - Scott County S.O. (MO):  NRN\nDisposition - SSCA:  RPT\nNotes on Close: NO PT CONTACT 12-22-2025 14:03:39|Disposition - SSCA UNIT:  AD","cADLog":"12-22-2025 12:32:30|STRUCTURE FIRE 12-22-2025 12:37:47|1711 EN ROUTE 12-22-2025 12:38:56|CORRECTION 1751 EN ROUTE X1 12-22-2025 12:42:54|CHARLESTON WORKING ON CHARLESTON FIRE 12-22-2025 12:43:04|RURAL UNITS ON FD1 12-22-2025 12:45:43|1711 ONSCENE ; CHARLESTON ON SCENE ONE STORY STRUCTURE SMOKE SHOWING 12-22-2025 12:48:39|1751 ON SCEDNE 12-22-2025 12:54:22|1705 COMMAND TRANSFERRED FROM CHARLETON TO 1705 CANCEL ALL NOT ON SCENE 12-22-2025 13:17:08|PER 349 SEMO ELECTRIC ON SCENE 12-22-2025 13:26:06|Disposition - Scott County S.O. (MO):  NRN\nDisposition - SSCA:  RPT\nNotes on Close: NO PT CONTACT 12-22-2025 14:03:39|Disposition - SSCA UNIT:  AD","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":1761,"name":"1761","timeenroutetoscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2025-12-22 20:08:22] [INFO] Number of extracted fields: 22
[2025-12-22 20:08:22] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2025-12-22 20:08:22] [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
[2025-12-22 20:08:22] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2025-12-22 20:08:22] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0)
[2025-12-22 20:08:22] [INFO] Found SAASClient match: ID = 6643bdb30659f00d8, Name = Scott County Rural Fire Protection District for AgencyCode 'SCRFD'
[2025-12-22 20:08:22] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2025-12-22 20:08:22] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-22 20:08:22] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2025-12-22 20:08:22] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2025-12-22 20:08:22] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"FIRE-STRUCTURE","saasclientId":"6643bdb30659f00d8","name":"FIRE-STRUCTURE"}
[2025-12-22 20:08:22] [INFO] Created new IncidentTypeMapping with ID: 6949a536db3ccf5b5
[2025-12-22 20:08:35] [INFO] Created new Dispatches record with ID: 6949a5373c8bb6741
[2025-12-22 20:08:35] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30595.xml
[2025-12-22 20:08:35] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30595.xml
[2025-12-22 20:55:22] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:55:22] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml for user: 69320e6a9e3e5ef71
[2025-12-22 20:55:22] [INFO] File size: 11582 bytes
[2025-12-22 20:55:22] [INFO] Created FTPFiles record with ID: 6949b03a604b45968
[2025-12-22 20:55:22] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2025-12-22 20:55:22] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:55:22] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:56:36] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:56:36] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml for user: 69320e6a9e3e5ef71
[2025-12-22 20:56:36] [INFO] File size: 13811 bytes
[2025-12-22 20:56:36] [INFO] Created FTPFiles record with ID: 6949b084adb4343f4
[2025-12-22 20:56:36] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2025-12-22 20:56:36] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:56:36] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:56:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:56:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml for user: 69320e6a9e3e5ef71
[2025-12-22 20:56:51] [INFO] File size: 13812 bytes
[2025-12-22 20:56:51] [INFO] Created FTPFiles record with ID: 6949b093dfd57b461
[2025-12-22 20:56:51] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2025-12-22 20:56:51] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:56:51] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:56:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:56:57] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml for user: 69320e6a9e3e5ef71
[2025-12-22 20:56:57] [INFO] File size: 13812 bytes
[2025-12-22 20:56:58] [INFO] Created FTPFiles record with ID: 6949b09a09fa1b418
[2025-12-22 20:56:58] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2025-12-22 20:56:58] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:56:58] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:57:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:57:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml for user: 69320e6a9e3e5ef71
[2025-12-22 20:57:13] [INFO] File size: 14761 bytes
[2025-12-22 20:57:13] [INFO] Created FTPFiles record with ID: 6949b0a99f3f35d39
[2025-12-22 20:57:13] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2025-12-22 20:57:13] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:57:13] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:59:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:59:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml for user: 69320e6a9e3e5ef71
[2025-12-22 20:59:52] [INFO] File size: 15714 bytes
[2025-12-22 20:59:52] [INFO] Created FTPFiles record with ID: 6949b148600add073
[2025-12-22 20:59:52] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2025-12-22 20:59:52] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:59:52] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:59:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:59:55] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml for user: 69320e6a9e3e5ef71
[2025-12-22 20:59:55] [INFO] File size: 17321 bytes
[2025-12-22 20:59:56] [INFO] Created FTPFiles record with ID: 6949b14c2bc71518f
[2025-12-22 20:59:56] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2025-12-22 20:59:56] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:59:56] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:59:58] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:59:58] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml for user: 69320e6a9e3e5ef71
[2025-12-22 20:59:58] [INFO] File size: 18901 bytes
[2025-12-22 20:59:59] [INFO] Created FTPFiles record with ID: 6949b14f437104a09
[2025-12-22 20:59:59] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2025-12-22 20:59:59] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 20:59:59] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 21:09:56] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 21:09:56] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml for user: 69320e6a9e3e5ef71
[2025-12-22 21:09:56] [INFO] File size: 19966 bytes
[2025-12-22 21:09:57] [INFO] Created FTPFiles record with ID: 6949b3a5111ec88bb
[2025-12-22 21:09:57] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2025-12-22 21:09:57] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 21:09:57] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 21:10:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 21:10:00] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml for user: 69320e6a9e3e5ef71
[2025-12-22 21:10:00] [INFO] File size: 21560 bytes
[2025-12-22 21:10:01] [INFO] Created FTPFiles record with ID: 6949b3a92e14194b0
[2025-12-22 21:10:01] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2025-12-22 21:10:01] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 21:10:01] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 21:12:43] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 21:12:43] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml for user: 69320e6a9e3e5ef71
[2025-12-22 21:12:43] [INFO] File size: 26043 bytes
[2025-12-22 21:12:44] [INFO] Created FTPFiles record with ID: 6949b44c11de56535
[2025-12-22 21:12:44] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2025-12-22 21:12:44] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 21:12:44] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-088610.xml
[2025-12-22 23:06:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30621.xml
[2025-12-22 23:06:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30621.xml for user: 68d56363ec1209189
[2025-12-22 23:06:46] [INFO] File size: 2425 bytes
[2025-12-22 23:06:47] [INFO] Created FTPFiles record with ID: 6949cf0735d433e11
[2025-12-22 23:06:47] [INFO] About to extract fields from XML. File size: 2425 bytes
[2025-12-22 23:06:47] [INFO] Number of mappings: 21
[2025-12-22 23:06:47] [INFO] Starting XML parsing. Content length: 2425
[2025-12-22 23:06:47] [INFO] XML parsed successfully. Root element: Incident
[2025-12-22 23:06:47] [INFO] Processing 21 field mappings
[2025-12-22 23:06:47] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2025-12-22 23:06:47] [INFO]   -> Found value: 25-30621
[2025-12-22 23:06:47] [INFO]   -> Set field 'dispatchRunNumber' = "25-30621"
[2025-12-22 23:06:47] [INFO]   -> Set field 'cADNumber' = "25-30621"
[2025-12-22 23:06:47] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-22 23:06:47] [INFO]   -> No value found (null or empty)
[2025-12-22 23:06:47] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-22 23:06:47] [INFO]   -> Found value: US HIGHWAY 61
[2025-12-22 23:06:47] [INFO]   -> Set field 'streetName' = "US HIGHWAY 61"
[2025-12-22 23:06:47] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-22 23:06:47] [INFO]   -> No value found (null or empty)
[2025-12-22 23:06:47] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-22 23:06:47] [INFO]   -> Found value: SIKESTON
[2025-12-22 23:06:47] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2025-12-22 23:06:47] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-22 23:06:47] [INFO]   -> No value found (null or empty)
[2025-12-22 23:06:47] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-22 23:06:47] [INFO]   -> No value found (null or empty)
[2025-12-22 23:06:47] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-22 23:06:47] [INFO]   -> No value found (null or empty)
[2025-12-22 23:06:47] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-22 23:06:47] [INFO]   -> Found value: 0
[2025-12-22 23:06:47] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-22 23:06:47] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-22 23:06:47] [INFO]   -> Found value: 0
[2025-12-22 23:06:47] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-22 23:06:47] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-22 23:06:47] [INFO]   -> Found value: FIRE-GRASS/BRUSH/TREES
[2025-12-22 23:06:47] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-GRASS\/BRUSH\/TREES"
[2025-12-22 23:06:47] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-22 23:06:47] [INFO]   -> Found value: 12-22-2025 16:54:15|LARGE FIRE BY ON OPPOSITE SIDE OF COOKSON SEED 12-22-2025 17:00:52|1705 RESPONDI...
[2025-12-22 23:06:47] [INFO]   -> Set field 'dispatchNotes' = "12-22-2025 16:54:15|LARGE FIRE BY ON OPPOSITE SIDE OF COOKSON SEED 12-22-2025 17:00:52|1705 RESPONDING 12-22-2025 17:04:51|5MPH 12-22-2025 17:04:59|11MPH WIND GUST 12-22-2025 17:05:15|ATTEMPTED CONTACT WITH DAVID OWENS ABOUT DRAINAGE DITCH CLEAN OFF NO ANSWER 12-22-2025 17:05:46|349 MADE CONTACT CONTROL BURN FOR FARMER ;"
[2025-12-22 23:06:47] [INFO]   -> Set field 'cADLog' = "12-22-2025 16:54:15|LARGE FIRE BY ON OPPOSITE SIDE OF COOKSON SEED 12-22-2025 17:00:52|1705 RESPONDING 12-22-2025 17:04:51|5MPH 12-22-2025 17:04:59|11MPH WIND GUST 12-22-2025 17:05:15|ATTEMPTED CONTACT WITH DAVID OWENS ABOUT DRAINAGE DITCH CLEAN OFF NO ANSWER 12-22-2025 17:05:46|349 MADE CONTACT CONTROL BURN FOR FARMER ;"
[2025-12-22 23:06:47] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-22 23:06:47] [INFO]   -> Found value: 12-22-2025T16:56:39
[2025-12-22 23:06:47] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T16:56:39
[2025-12-22 23:06:47] [ERROR] Error formatting datetime '2025-22-12T16:56:39': Failed to parse time string (2025-22-12T16:56:39) at position 6 (2): Unexpected character
[2025-12-22 23:06:47] [INFO]   -> Set field 'alarm' = null
[2025-12-22 23:06:47] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T16:56:39
[2025-12-22 23:06:47] [ERROR] Error formatting datetime '2025-22-12T16:56:39': Failed to parse time string (2025-22-12T16:56:39) at position 6 (2): Unexpected character
[2025-12-22 23:06:47] [INFO]   -> Set field 'dispatched' = null
[2025-12-22 23:06:47] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-22 23:06:47] [INFO]   -> No value found (null or empty)
[2025-12-22 23:06:47] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-22 23:06:47] [INFO]   -> No value found (null or empty)
[2025-12-22 23:06:47] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-22 23:06:47] [INFO]   -> Found value: 1763
[2025-12-22 23:06:47] [INFO]   -> Set field 'cADVehicleID' = 1763
[2025-12-22 23:06:47] [INFO]   -> Set field 'name' = "1763"
[2025-12-22 23:06:47] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-22 23:06:47] [INFO]   -> Found value: 12-22-2025T17:05:28
[2025-12-22 23:06:47] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T17:05:28
[2025-12-22 23:06:47] [ERROR] Error formatting datetime '2025-22-12T17:05:28': Failed to parse time string (2025-22-12T17:05:28) at position 6 (2): Unexpected character
[2025-12-22 23:06:47] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-22 23:06:47] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-22 23:06:47] [INFO]   -> No value found (null or empty)
[2025-12-22 23:06:47] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-22 23:06:47] [INFO]   -> Found value: 12-22-2025T17:06:32
[2025-12-22 23:06:47] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T17:06:32
[2025-12-22 23:06:47] [ERROR] Error formatting datetime '2025-22-12T17:06:32': Failed to parse time string (2025-22-12T17:06:32) at position 6 (2): Unexpected character
[2025-12-22 23:06:47] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-22 23:06:47] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-22 23:06:47] [INFO]   -> Found value: 12-22-2025T17:05:22
[2025-12-22 23:06:47] [INFO] Reformatted DD-MM-YYYY date '12-22-2025' (day=12, month=22) to ISO: 2025-22-12T17:05:22
[2025-12-22 23:06:47] [ERROR] Error formatting datetime '2025-22-12T17:05:22': Failed to parse time string (2025-22-12T17:05:22) at position 6 (2): Unexpected character
[2025-12-22 23:06:47] [INFO]   -> Set field 'timedispatch' = null
[2025-12-22 23:06:47] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-22 23:06:47] [INFO]   -> Found value: SCRFD
[2025-12-22 23:06:47] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2025-12-22 23:06:47] [INFO] Finished extracting fields. Total fields extracted: 17
[2025-12-22 23:06:47] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-22 23:06:47] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-30621","cADNumber":"25-30621","streetName":"US HIGHWAY 61","incidentLocationCity":"SIKESTON","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-GRASS\/BRUSH\/TREES","dispatchNotes":"12-22-2025 16:54:15|LARGE FIRE BY ON OPPOSITE SIDE OF COOKSON SEED 12-22-2025 17:00:52|1705 RESPONDING 12-22-2025 17:04:51|5MPH 12-22-2025 17:04:59|11MPH WIND GUST 12-22-2025 17:05:15|ATTEMPTED CONTACT WITH DAVID OWENS ABOUT DRAINAGE DITCH CLEAN OFF NO ANSWER 12-22-2025 17:05:46|349 MADE CONTACT CONTROL BURN FOR FARMER ;","cADLog":"12-22-2025 16:54:15|LARGE FIRE BY ON OPPOSITE SIDE OF COOKSON SEED 12-22-2025 17:00:52|1705 RESPONDING 12-22-2025 17:04:51|5MPH 12-22-2025 17:04:59|11MPH WIND GUST 12-22-2025 17:05:15|ATTEMPTED CONTACT WITH DAVID OWENS ABOUT DRAINAGE DITCH CLEAN OFF NO ANSWER 12-22-2025 17:05:46|349 MADE CONTACT CONTROL BURN FOR FARMER ;","alarm":null,"dispatched":null,"cADVehicleID":1763,"name":"1763","timeenroutetoscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2025-12-22 23:06:47] [INFO] Number of extracted fields: 18
[2025-12-22 23:06:47] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2025-12-22 23:06:47] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SCRFD', Parsed IDs = ["SCRFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2025-12-22 23:06:47] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2025-12-22 23:06:47] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0)
[2025-12-22 23:06:47] [INFO] Found SAASClient match: ID = 6643bdb30659f00d8, Name = Scott County Rural Fire Protection District for AgencyCode 'SCRFD'
[2025-12-22 23:06:47] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2025-12-22 23:06:47] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-22 23:06:47] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2025-12-22 23:06:47] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2025-12-22 23:06:47] [INFO] Found existing IncidentTypeMapping with ID: 6938ba16ac72f649f
[2025-12-22 23:07:01] [INFO] Created new Dispatches record with ID: 6949cf08124ebee51
[2025-12-22 23:07:01] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30621.xml
[2025-12-22 23:07:01] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-30621.xml
