[2025-12-14 01:23:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-086572.xml
[2025-12-14 01:23:33] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-086572.xml for user: 69320e6a9e3e5ef71
[2025-12-14 01:23:33] [INFO] File size: 14544 bytes
[2025-12-14 01:23:33] [INFO] Created FTPFiles record with ID: 693e11955ff880db7
[2025-12-14 01:23:33] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2025-12-14 01:23:33] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-086572.xml
[2025-12-14 01:23:33] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2025-086572.xml
[2025-12-14 01:32:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29654.xml
[2025-12-14 01:32:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29654.xml for user: 68d56363ec1209189
[2025-12-14 01:32:01] [INFO] File size: 2009 bytes
[2025-12-14 01:32:01] [INFO] Created FTPFiles record with ID: 693e1391262762025
[2025-12-14 01:32:01] [INFO] About to extract fields from XML. File size: 2009 bytes
[2025-12-14 01:32:01] [INFO] Number of mappings: 21
[2025-12-14 01:32:01] [INFO] Starting XML parsing. Content length: 2009
[2025-12-14 01:32:01] [INFO] XML parsed successfully. Root element: Incident
[2025-12-14 01:32:01] [INFO] Processing 21 field mappings
[2025-12-14 01:32:01] [INFO] Mapping #1: Extracting 'IncidentNumber' => 'dispatchRunNumber'
[2025-12-14 01:32:01] [INFO]   -> Found value: 25-29654
[2025-12-14 01:32:01] [INFO]   -> Set field 'dispatchRunNumber' = "25-29654"
[2025-12-14 01:32:01] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-14 01:32:01] [INFO]   -> No value found (null or empty)
[2025-12-14 01:32:01] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-14 01:32:01] [INFO]   -> Found value: RUTH ST
[2025-12-14 01:32:01] [INFO]   -> Set field 'streetName' = "RUTH ST"
[2025-12-14 01:32:01] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-14 01:32:01] [INFO]   -> No value found (null or empty)
[2025-12-14 01:32:01] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-14 01:32:01] [INFO]   -> Found value: SIKESTON
[2025-12-14 01:32:01] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2025-12-14 01:32:01] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-14 01:32:01] [INFO]   -> No value found (null or empty)
[2025-12-14 01:32:01] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-14 01:32:01] [INFO]   -> Found value: MO
[2025-12-14 01:32:01] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2025-12-14 01:32:01] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-14 01:32:01] [INFO]   -> Found value: 63801
[2025-12-14 01:32:01] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2025-12-14 01:32:01] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-14 01:32:01] [INFO]   -> Found value: 0
[2025-12-14 01:32:01] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-14 01:32:01] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-14 01:32:01] [INFO]   -> Found value: 0
[2025-12-14 01:32:01] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-14 01:32:01] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-14 01:32:01] [INFO]   -> Found value: ACCIDENT-J2
[2025-12-14 01:32:01] [INFO]   -> Set field 'incidentTypeValue1' = "ACCIDENT-J2"
[2025-12-14 01:32:01] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-14 01:32:01] [INFO]   -> Found value: 12-13-2025 17:51:32|Call Received on 12/13/2025 @ 17:51

FEMALE STRUCK BY VEHICLE 
UNKNOWN WHERE BLE...
[2025-12-14 01:32:01] [INFO]   -> Set field 'dispatchNotes' = "12-13-2025 17:51:32|Call Received on 12\/13\/2025 @ 17:51\n\nFEMALE STRUCK BY VEHICLE \nUNKNOWN WHERE BLEEDING 12-13-2025 17:54:33|SHE IS BREATHING 12-13-2025 17:56:39|34 YR OLD FEMALE REAR END PAIN 12-13-2025 17:57:41|1510 ENROUTE, BUT AVAILABLE 12-13-2025 18:12:57|SFMC 12-13-2025 18:15:08|Disposition - SDPS PD:  RPT 12-13-2025 19:29:33|Disposition - SSCA:  RPT 12-13-2025 19:30:10|Disposition - SSCA UNIT:  RPT"
[2025-12-14 01:32:01] [INFO]   -> Set field 'cADLog' = "12-13-2025 17:51:32|Call Received on 12\/13\/2025 @ 17:51\n\nFEMALE STRUCK BY VEHICLE \nUNKNOWN WHERE BLEEDING 12-13-2025 17:54:33|SHE IS BREATHING 12-13-2025 17:56:39|34 YR OLD FEMALE REAR END PAIN 12-13-2025 17:57:41|1510 ENROUTE, BUT AVAILABLE 12-13-2025 18:12:57|SFMC 12-13-2025 18:15:08|Disposition - SDPS PD:  RPT 12-13-2025 19:29:33|Disposition - SSCA:  RPT 12-13-2025 19:30:10|Disposition - SSCA UNIT:  RPT"
[2025-12-14 01:32:01] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-14 01:32:01] [INFO]   -> Found value: 12-13-2025T17:53:23
[2025-12-14 01:32:01] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T17:53:23
[2025-12-14 01:32:01] [ERROR] Error formatting datetime '2025-13-12T17:53:23': Failed to parse time string (2025-13-12T17:53:23) at position 6 (3): Unexpected character
[2025-12-14 01:32:01] [INFO]   -> Set field 'alarm' = null
[2025-12-14 01:32:01] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T17:53:23
[2025-12-14 01:32:01] [ERROR] Error formatting datetime '2025-13-12T17:53:23': Failed to parse time string (2025-13-12T17:53:23) at position 6 (3): Unexpected character
[2025-12-14 01:32:01] [INFO]   -> Set field 'dispatched' = null
[2025-12-14 01:32:01] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-14 01:32:01] [INFO]   -> Found value: 12-13-2025T17:55:16
[2025-12-14 01:32:01] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T17:55:16
[2025-12-14 01:32:01] [ERROR] Error formatting datetime '2025-13-12T17:55:16': Failed to parse time string (2025-13-12T17:55:16) at position 6 (3): Unexpected character
[2025-12-14 01:32:01] [INFO]   -> Set field 'onScene' = null
[2025-12-14 01:32:01] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-14 01:32:01] [INFO]   -> Found value: 12-13-2025T19:31:19
[2025-12-14 01:32:01] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T19:31:19
[2025-12-14 01:32:01] [ERROR] Error formatting datetime '2025-13-12T19:31:19': Failed to parse time string (2025-13-12T19:31:19) at position 6 (3): Unexpected character
[2025-12-14 01:32:01] [INFO]   -> Set field 'cleared' = null
[2025-12-14 01:32:01] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T19:31:19
[2025-12-14 01:32:01] [ERROR] Error formatting datetime '2025-13-12T19:31:19': Failed to parse time string (2025-13-12T19:31:19) at position 6 (3): Unexpected character
[2025-12-14 01:32:01] [INFO]   -> Set field 'inService' = null
[2025-12-14 01:32:01] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-14 01:32:01] [INFO]   -> Found value: ENG2
[2025-12-14 01:32:01] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2025-12-14 01:32:01] [INFO]   -> Set field 'name' = "ENG2"
[2025-12-14 01:32:01] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-14 01:32:01] [INFO]   -> No value found (null or empty)
[2025-12-14 01:32:01] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-14 01:32:01] [INFO]   -> Found value: 12-13-2025T17:57:12
[2025-12-14 01:32:01] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T17:57:12
[2025-12-14 01:32:01] [ERROR] Error formatting datetime '2025-13-12T17:57:12': Failed to parse time string (2025-13-12T17:57:12) at position 6 (3): Unexpected character
[2025-12-14 01:32:01] [INFO]   -> Set field 'timeonscene' = null
[2025-12-14 01:32:01] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-14 01:32:01] [INFO]   -> Found value: 12-13-2025T19:31:19
[2025-12-14 01:32:01] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T19:31:19
[2025-12-14 01:32:01] [ERROR] Error formatting datetime '2025-13-12T19:31:19': Failed to parse time string (2025-13-12T19:31:19) at position 6 (3): Unexpected character
[2025-12-14 01:32:01] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-14 01:32:01] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-14 01:32:01] [INFO]   -> Found value: 12-13-2025T17:57:10
[2025-12-14 01:32:01] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T17:57:10
[2025-12-14 01:32:01] [ERROR] Error formatting datetime '2025-13-12T17:57:10': Failed to parse time string (2025-13-12T17:57:10) at position 6 (3): Unexpected character
[2025-12-14 01:32:01] [INFO]   -> Set field 'timedispatch' = null
[2025-12-14 01:32:01] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-14 01:32:01] [INFO]   -> Found value: SDPSFD
[2025-12-14 01:32:01] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2025-12-14 01:32:01] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-14 01:32:01] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-14 01:32:01] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-29654","streetName":"RUTH ST","incidentLocationCity":"SIKESTON","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"ACCIDENT-J2","dispatchNotes":"12-13-2025 17:51:32|Call Received on 12\/13\/2025 @ 17:51\n\nFEMALE STRUCK BY VEHICLE \nUNKNOWN WHERE BLEEDING 12-13-2025 17:54:33|SHE IS BREATHING 12-13-2025 17:56:39|34 YR OLD FEMALE REAR END PAIN 12-13-2025 17:57:41|1510 ENROUTE, BUT AVAILABLE 12-13-2025 18:12:57|SFMC 12-13-2025 18:15:08|Disposition - SDPS PD:  RPT 12-13-2025 19:29:33|Disposition - SSCA:  RPT 12-13-2025 19:30:10|Disposition - SSCA UNIT:  RPT","cADLog":"12-13-2025 17:51:32|Call Received on 12\/13\/2025 @ 17:51\n\nFEMALE STRUCK BY VEHICLE \nUNKNOWN WHERE BLEEDING 12-13-2025 17:54:33|SHE IS BREATHING 12-13-2025 17:56:39|34 YR OLD FEMALE REAR END PAIN 12-13-2025 17:57:41|1510 ENROUTE, BUT AVAILABLE 12-13-2025 18:12:57|SFMC 12-13-2025 18:15:08|Disposition - SDPS PD:  RPT 12-13-2025 19:29:33|Disposition - SSCA:  RPT 12-13-2025 19:30:10|Disposition - SSCA UNIT:  RPT","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"ENG2","name":"ENG2","timeonscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2025-12-14 01:32:01] [INFO] Number of extracted fields: 22
[2025-12-14 01:32:01] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2025-12-14 01:32:01] [INFO] Multi-agency routing check: CAD Agency ID = SDPSFD, Assigned Agencies count = 2
[2025-12-14 01:32:01] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'SDPSFD'
[2025-12-14 01:32:01] [INFO] Found SAASClient match: ID = 6772cab7157b2ebde, Name = Sikeston DPS
[2025-12-14 01:32:01] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) based on CAD ID: 'SDPSFD'
[2025-12-14 01:32:01] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-14 01:32:01] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-14 01:32:01] [INFO] Updated FTPFiles record saasclientId to routed agency: 6772cab7157b2ebde
[2025-12-14 01:32:01] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e87be42b7c
[2025-12-14 01:32:02] [INFO] Created new Dispatches record with ID: 693e1391870226a82
[2025-12-14 01:32:02] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29654.xml
[2025-12-14 01:32:02] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29654.xml
[2025-12-14 03:43:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250136965_20251214_034339.XML
[2025-12-14 03:43:39] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250136965_20251214_034339.XML for user: 68f1466aed072ad4a
[2025-12-14 03:43:39] [INFO] File size: 5491 bytes
[2025-12-14 03:43:40] [INFO] Created FTPFiles record with ID: 693e326c129f79e84
[2025-12-14 03:43:40] [INFO] About to extract fields from XML. File size: 5491 bytes
[2025-12-14 03:43:40] [INFO] Number of mappings: 26
[2025-12-14 03:43:40] [INFO] Starting XML parsing. Content length: 5491
[2025-12-14 03:43:40] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 03:43:40] [INFO] Processing 26 field mappings
[2025-12-14 03:43:40] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 03:43:40] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-14 03:43:40] [INFO]   -> Found value: PCFD
EMS
RESC
[2025-12-14 03:43:40] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2025-12-14 03:43:40] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 03:43:40] [INFO] Found 3 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-14 03:43:40] [INFO]   -> Found value: 2025003048
2025019383
[2025-12-14 03:43:40] [INFO]   -> Set field 'incidentInternalId' = "2025003048\n2025019383"
[2025-12-14 03:43:40] [INFO]   -> Set field 'dispatchRunNumber' = "2025003048\n2025019383"
[2025-12-14 03:43:40] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 03:43:40] [INFO]   -> Found value: BREATHING PROBLEMS
[2025-12-14 03:43:40] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2025-12-14 03:43:40] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 03:43:40] [INFO]   -> Found value: 1641
[2025-12-14 03:43:40] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1641
[2025-12-14 03:43:40] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 03:43:40] [INFO]   -> Found value: BENTON YOUNG RD
[2025-12-14 03:43:40] [INFO]   -> Set field 'streetName' = "BENTON YOUNG RD"
[2025-12-14 03:43:40] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 03:43:40] [INFO]   -> Found value: COOKEVILLE
[2025-12-14 03:43:40] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-14 03:43:40] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 03:43:40] [INFO]   -> Found value: TN
[2025-12-14 03:43:40] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 03:43:40] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 03:43:40] [INFO]   -> Found value: 38501
[2025-12-14 03:43:40] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2025-12-14 03:43:40] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 03:43:40] [INFO]   -> Found value: WAYNE KEY
[2025-12-14 03:43:40] [INFO]   -> Set field 'businessName' = "WAYNE KEY"
[2025-12-14 03:43:40] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 03:43:40] [INFO]   -> Found value: B1
[2025-12-14 03:43:40] [INFO]   -> Set field 'incidentLocationApt' = "B1"
[2025-12-14 03:43:40] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 03:43:40] [INFO]   -> Found value: 36.18645
[2025-12-14 03:43:40] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18645
[2025-12-14 03:43:40] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 03:43:40] [INFO]   -> Found value: -85.53213
[2025-12-14 03:43:40] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.53213
[2025-12-14 03:43:40] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 03:43:40] [INFO]   -> Found value: 2025-12-13 21:42:43
[2025-12-14 03:43:40] [INFO]   -> Set field 'alarm' = "2025-12-13 21:42:43"
[2025-12-14 03:43:40] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 03:43:40] [INFO]   -> Found value: 2025-12-13 21:43:36
[2025-12-14 03:43:40] [INFO]   -> Set field 'dispatched' = "2025-12-13 21:43:36"
[2025-12-14 03:43:40] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 03:43:40] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:40] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 03:43:40] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:40] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 03:43:40] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:40] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 03:43:40] [INFO]   -> Found value: GAINESBORO GRADE/WALTER REED RD
[2025-12-14 03:43:40] [INFO]   -> Set field 'incidentLocationCross' = "GAINESBORO GRADE\/WALTER REED RD"
[2025-12-14 03:43:40] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 03:43:40] [INFO]   -> Found value: PCFR
[2025-12-14 03:43:40] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-14 03:43:40] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 03:43:40] [INFO]   -> Found value: 2025-12-13 21:43:36
[2025-12-14 03:43:40] [INFO]   -> Set field 'timedispatch' = "2025-12-13 21:43:36"
[2025-12-14 03:43:40] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 03:43:40] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:40] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 03:43:40] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:40] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 03:43:40] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:40] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 03:43:40] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:40] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 03:43:40] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-14 03:43:40] [INFO]   -> Found value: 20250136965
20250136964
20250136966
[2025-12-14 03:43:40] [INFO]   -> Set field 'policeReportNumber' = "20250136965\n20250136964\n20250136966"
[2025-12-14 03:43:40] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 03:43:40] [INFO]   -> Found value: [APCO INTELLICOMM] Case ID: XZB_dGxVHX Caller Phone: (empty) Caller Name: (empty) Incident Location:...
[2025-12-14 03:43:40] [INFO]   -> Set field 'dispatchNotes' = "[APCO INTELLICOMM] Case ID: XZB_dGxVHX Caller Phone: (empty) Caller Name: (empty) Incident Location: 1641-B1 BENTON YOUNG RD Incident Location Detail: GAINESBORO GRADE\/WALTER REED RD Nature: BREATHING PROBLEMS Incident #: 20250136964 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/13\/25 21:42:46 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/13\/2025 21:42:43 TSCOTT]"
[2025-12-14 03:43:40] [INFO]   -> Set field 'cADLog' = "[APCO INTELLICOMM] Case ID: XZB_dGxVHX Caller Phone: (empty) Caller Name: (empty) Incident Location: 1641-B1 BENTON YOUNG RD Incident Location Detail: GAINESBORO GRADE\/WALTER REED RD Nature: BREATHING PROBLEMS Incident #: 20250136964 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/13\/25 21:42:46 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/13\/2025 21:42:43 TSCOTT]"
[2025-12-14 03:43:40] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-14 03:43:40] [INFO] Built locationCoordinates from lat/lng: 36.18645,-85.53213
[2025-12-14 03:43:40] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2025003048\n2025019383","dispatchRunNumber":"2025003048\n2025019383","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":1641,"streetName":"BENTON YOUNG RD","incidentLocationCity":"COOKEVILLE","incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"WAYNE KEY","incidentLocationApt":"B1","nERISIncidentLatitude":36.18645,"nERISIncidentLongitude":-85.53213,"alarm":"2025-12-13 21:42:43","dispatched":"2025-12-13 21:43:36","incidentLocationCross":"GAINESBORO GRADE\/WALTER REED RD","cADVehicleID":"PCFR","timedispatch":"2025-12-13 21:43:36","policeReportNumber":"20250136965\n20250136964\n20250136966","dispatchNotes":"[APCO INTELLICOMM] Case ID: XZB_dGxVHX Caller Phone: (empty) Caller Name: (empty) Incident Location: 1641-B1 BENTON YOUNG RD Incident Location Detail: GAINESBORO GRADE\/WALTER REED RD Nature: BREATHING PROBLEMS Incident #: 20250136964 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/13\/25 21:42:46 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/13\/2025 21:42:43 TSCOTT]","cADLog":"[APCO INTELLICOMM] Case ID: XZB_dGxVHX Caller Phone: (empty) Caller Name: (empty) Incident Location: 1641-B1 BENTON YOUNG RD Incident Location Detail: GAINESBORO GRADE\/WALTER REED RD Nature: BREATHING PROBLEMS Incident #: 20250136964 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/13\/25 21:42:46 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/13\/2025 21:42:43 TSCOTT]","locationCoordinates":"36.18645,-85.53213"}
[2025-12-14 03:43:40] [INFO] Number of extracted fields: 22
[2025-12-14 03:43:40] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 03:43:40] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
EMS
RESC, Assigned Agencies count = 1
[2025-12-14 03:43:40] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
EMS
RESC'
[2025-12-14 03:43:40] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 03:43:40] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 03:43:40] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 03:43:40] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"BREATHING PROBLEMS","saasclientId":"68eeb686225c40db4","name":"BREATHING PROBLEMS"}
[2025-12-14 03:43:40] [INFO] Created new IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2025-12-14 03:43:41] [INFO] Created new Dispatches record with ID: 693e326c5403bf84d
[2025-12-14 03:43:41] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250136965_20251214_034339.XML
[2025-12-14 03:43:41] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250136965_20251214_034339.XML
[2025-12-14 03:43:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250136965_20251214_034340.XML
[2025-12-14 03:43:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250136965_20251214_034340.XML for user: 68f1466aed072ad4a
[2025-12-14 03:43:41] [INFO] File size: 5491 bytes
[2025-12-14 03:43:41] [INFO] Created FTPFiles record with ID: 693e326de42fa7965
[2025-12-14 03:43:41] [INFO] About to extract fields from XML. File size: 5491 bytes
[2025-12-14 03:43:41] [INFO] Number of mappings: 26
[2025-12-14 03:43:41] [INFO] Starting XML parsing. Content length: 5491
[2025-12-14 03:43:41] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 03:43:41] [INFO] Processing 26 field mappings
[2025-12-14 03:43:41] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 03:43:41] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-14 03:43:41] [INFO]   -> Found value: PCFD
EMS
RESC
[2025-12-14 03:43:41] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2025-12-14 03:43:41] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 03:43:41] [INFO] Found 3 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-14 03:43:41] [INFO]   -> Found value: 2025003048
2025019383
[2025-12-14 03:43:41] [INFO]   -> Set field 'incidentInternalId' = "2025003048\n2025019383"
[2025-12-14 03:43:41] [INFO]   -> Set field 'dispatchRunNumber' = "2025003048\n2025019383"
[2025-12-14 03:43:41] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 03:43:41] [INFO]   -> Found value: BREATHING PROBLEMS
[2025-12-14 03:43:41] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2025-12-14 03:43:41] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 03:43:41] [INFO]   -> Found value: 1641
[2025-12-14 03:43:41] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1641
[2025-12-14 03:43:41] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 03:43:41] [INFO]   -> Found value: BENTON YOUNG RD
[2025-12-14 03:43:41] [INFO]   -> Set field 'streetName' = "BENTON YOUNG RD"
[2025-12-14 03:43:41] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 03:43:41] [INFO]   -> Found value: COOKEVILLE
[2025-12-14 03:43:41] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-14 03:43:41] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 03:43:41] [INFO]   -> Found value: TN
[2025-12-14 03:43:41] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 03:43:41] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 03:43:41] [INFO]   -> Found value: 38501
[2025-12-14 03:43:41] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2025-12-14 03:43:41] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 03:43:41] [INFO]   -> Found value: WAYNE KEY
[2025-12-14 03:43:41] [INFO]   -> Set field 'businessName' = "WAYNE KEY"
[2025-12-14 03:43:41] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 03:43:41] [INFO]   -> Found value: B1
[2025-12-14 03:43:41] [INFO]   -> Set field 'incidentLocationApt' = "B1"
[2025-12-14 03:43:41] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 03:43:41] [INFO]   -> Found value: 36.18645
[2025-12-14 03:43:41] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18645
[2025-12-14 03:43:41] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 03:43:41] [INFO]   -> Found value: -85.53213
[2025-12-14 03:43:41] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.53213
[2025-12-14 03:43:41] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 03:43:41] [INFO]   -> Found value: 2025-12-13 21:42:43
[2025-12-14 03:43:41] [INFO]   -> Set field 'alarm' = "2025-12-13 21:42:43"
[2025-12-14 03:43:41] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 03:43:41] [INFO]   -> Found value: 2025-12-13 21:43:36
[2025-12-14 03:43:41] [INFO]   -> Set field 'dispatched' = "2025-12-13 21:43:36"
[2025-12-14 03:43:41] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 03:43:41] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:41] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 03:43:41] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:41] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 03:43:41] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:41] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 03:43:41] [INFO]   -> Found value: GAINESBORO GRADE/WALTER REED RD
[2025-12-14 03:43:41] [INFO]   -> Set field 'incidentLocationCross' = "GAINESBORO GRADE\/WALTER REED RD"
[2025-12-14 03:43:41] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 03:43:41] [INFO]   -> Found value: PCFR
[2025-12-14 03:43:41] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-14 03:43:41] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 03:43:41] [INFO]   -> Found value: 2025-12-13 21:43:36
[2025-12-14 03:43:41] [INFO]   -> Set field 'timedispatch' = "2025-12-13 21:43:36"
[2025-12-14 03:43:41] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 03:43:41] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:41] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 03:43:41] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:41] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 03:43:41] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:41] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 03:43:41] [INFO]   -> No value found (null or empty)
[2025-12-14 03:43:41] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 03:43:41] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-14 03:43:41] [INFO]   -> Found value: 20250136965
20250136964
20250136966
[2025-12-14 03:43:41] [INFO]   -> Set field 'policeReportNumber' = "20250136965\n20250136964\n20250136966"
[2025-12-14 03:43:41] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 03:43:41] [INFO]   -> Found value: [APCO INTELLICOMM] Case ID: XZB_dGxVHX Caller Phone: (empty) Caller Name: (empty) Incident Location:...
[2025-12-14 03:43:41] [INFO]   -> Set field 'dispatchNotes' = "[APCO INTELLICOMM] Case ID: XZB_dGxVHX Caller Phone: (empty) Caller Name: (empty) Incident Location: 1641-B1 BENTON YOUNG RD Incident Location Detail: GAINESBORO GRADE\/WALTER REED RD Nature: BREATHING PROBLEMS Incident #: 20250136964 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/13\/25 21:42:46 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/13\/2025 21:42:43 TSCOTT]"
[2025-12-14 03:43:41] [INFO]   -> Set field 'cADLog' = "[APCO INTELLICOMM] Case ID: XZB_dGxVHX Caller Phone: (empty) Caller Name: (empty) Incident Location: 1641-B1 BENTON YOUNG RD Incident Location Detail: GAINESBORO GRADE\/WALTER REED RD Nature: BREATHING PROBLEMS Incident #: 20250136964 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/13\/25 21:42:46 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/13\/2025 21:42:43 TSCOTT]"
[2025-12-14 03:43:41] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-14 03:43:41] [INFO] Built locationCoordinates from lat/lng: 36.18645,-85.53213
[2025-12-14 03:43:41] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2025003048\n2025019383","dispatchRunNumber":"2025003048\n2025019383","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":1641,"streetName":"BENTON YOUNG RD","incidentLocationCity":"COOKEVILLE","incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"WAYNE KEY","incidentLocationApt":"B1","nERISIncidentLatitude":36.18645,"nERISIncidentLongitude":-85.53213,"alarm":"2025-12-13 21:42:43","dispatched":"2025-12-13 21:43:36","incidentLocationCross":"GAINESBORO GRADE\/WALTER REED RD","cADVehicleID":"PCFR","timedispatch":"2025-12-13 21:43:36","policeReportNumber":"20250136965\n20250136964\n20250136966","dispatchNotes":"[APCO INTELLICOMM] Case ID: XZB_dGxVHX Caller Phone: (empty) Caller Name: (empty) Incident Location: 1641-B1 BENTON YOUNG RD Incident Location Detail: GAINESBORO GRADE\/WALTER REED RD Nature: BREATHING PROBLEMS Incident #: 20250136964 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/13\/25 21:42:46 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/13\/2025 21:42:43 TSCOTT]","cADLog":"[APCO INTELLICOMM] Case ID: XZB_dGxVHX Caller Phone: (empty) Caller Name: (empty) Incident Location: 1641-B1 BENTON YOUNG RD Incident Location Detail: GAINESBORO GRADE\/WALTER REED RD Nature: BREATHING PROBLEMS Incident #: 20250136964 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/13\/25 21:42:46 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/13\/2025 21:42:43 TSCOTT]","locationCoordinates":"36.18645,-85.53213"}
[2025-12-14 03:43:41] [INFO] Number of extracted fields: 22
[2025-12-14 03:43:41] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 03:43:41] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
EMS
RESC, Assigned Agencies count = 1
[2025-12-14 03:43:41] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
EMS
RESC'
[2025-12-14 03:43:42] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 03:43:42] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 03:43:42] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 03:43:42] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2025-12-14 03:43:42] [INFO] Found existing Dispatch with cADNumber '2025003048
2025019383', ID: 693e326c5403bf84d - will update instead of create
[2025-12-14 03:43:42] [INFO] Updated existing Dispatches record with ID: 693e326c5403bf84d
[2025-12-14 03:43:42] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250136965_20251214_034340.XML
[2025-12-14 03:43:42] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250136965_20251214_034340.XML
[2025-12-14 04:23:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29664.xml
[2025-12-14 04:23:23] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29664.xml for user: 68d56363ec1209189
[2025-12-14 04:23:23] [INFO] File size: 1658 bytes
[2025-12-14 04:23:24] [INFO] Created FTPFiles record with ID: 693e3bbc0ecee58d1
[2025-12-14 04:23:24] [INFO] About to extract fields from XML. File size: 1658 bytes
[2025-12-14 04:23:24] [INFO] Number of mappings: 21
[2025-12-14 04:23:24] [INFO] Starting XML parsing. Content length: 1658
[2025-12-14 04:23:24] [INFO] XML parsed successfully. Root element: Incident
[2025-12-14 04:23:24] [INFO] Processing 21 field mappings
[2025-12-14 04:23:24] [INFO] Mapping #1: Extracting 'IncidentNumber' => 'dispatchRunNumber'
[2025-12-14 04:23:24] [INFO]   -> Found value: 25-29664
[2025-12-14 04:23:24] [INFO]   -> Set field 'dispatchRunNumber' = "25-29664"
[2025-12-14 04:23:24] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-14 04:23:24] [INFO]   -> Found value: 1551
[2025-12-14 04:23:24] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1551
[2025-12-14 04:23:24] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-14 04:23:24] [INFO]   -> Found value: W WAKEFIELD AVE
[2025-12-14 04:23:24] [INFO]   -> Set field 'streetName' = "W WAKEFIELD AVE"
[2025-12-14 04:23:24] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-14 04:23:24] [INFO]   -> No value found (null or empty)
[2025-12-14 04:23:24] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-14 04:23:24] [INFO]   -> Found value: SIKESTON
[2025-12-14 04:23:24] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2025-12-14 04:23:24] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-14 04:23:24] [INFO]   -> Found value: SIKESTON POWER PLANT
[2025-12-14 04:23:24] [INFO]   -> Set field 'businessName' = "SIKESTON POWER PLANT"
[2025-12-14 04:23:24] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-14 04:23:24] [INFO]   -> Found value: MO
[2025-12-14 04:23:24] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2025-12-14 04:23:24] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-14 04:23:24] [INFO]   -> Found value: 63801
[2025-12-14 04:23:24] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2025-12-14 04:23:24] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-14 04:23:24] [INFO]   -> Found value: 0
[2025-12-14 04:23:24] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-14 04:23:24] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-14 04:23:24] [INFO]   -> Found value: 0
[2025-12-14 04:23:24] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-14 04:23:24] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-14 04:23:24] [INFO]   -> Found value: FIRE-COAL TRAIN STANDBY
[2025-12-14 04:23:24] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-COAL TRAIN STANDBY"
[2025-12-14 04:23:24] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-14 04:23:24] [INFO]   -> Found value: 12-13-2025 21:43:40|ARRIVNG FROM THE NORTH
[2025-12-14 04:23:24] [INFO]   -> Set field 'dispatchNotes' = "12-13-2025 21:43:40|ARRIVNG FROM THE NORTH"
[2025-12-14 04:23:24] [INFO]   -> Set field 'cADLog' = "12-13-2025 21:43:40|ARRIVNG FROM THE NORTH"
[2025-12-14 04:23:24] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-14 04:23:24] [INFO]   -> Found value: 12-13-2025T21:45:54
[2025-12-14 04:23:24] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T21:45:54
[2025-12-14 04:23:24] [ERROR] Error formatting datetime '2025-13-12T21:45:54': Failed to parse time string (2025-13-12T21:45:54) at position 6 (3): Unexpected character
[2025-12-14 04:23:24] [INFO]   -> Set field 'alarm' = null
[2025-12-14 04:23:24] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T21:45:54
[2025-12-14 04:23:24] [ERROR] Error formatting datetime '2025-13-12T21:45:54': Failed to parse time string (2025-13-12T21:45:54) at position 6 (3): Unexpected character
[2025-12-14 04:23:24] [INFO]   -> Set field 'dispatched' = null
[2025-12-14 04:23:24] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-14 04:23:24] [INFO]   -> Found value: 12-13-2025T21:49:26
[2025-12-14 04:23:24] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T21:49:26
[2025-12-14 04:23:24] [ERROR] Error formatting datetime '2025-13-12T21:49:26': Failed to parse time string (2025-13-12T21:49:26) at position 6 (3): Unexpected character
[2025-12-14 04:23:24] [INFO]   -> Set field 'onScene' = null
[2025-12-14 04:23:24] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-14 04:23:24] [INFO]   -> Found value: 12-13-2025T22:23:02
[2025-12-14 04:23:24] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T22:23:02
[2025-12-14 04:23:24] [ERROR] Error formatting datetime '2025-13-12T22:23:02': Failed to parse time string (2025-13-12T22:23:02) at position 6 (3): Unexpected character
[2025-12-14 04:23:24] [INFO]   -> Set field 'cleared' = null
[2025-12-14 04:23:24] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T22:23:02
[2025-12-14 04:23:24] [ERROR] Error formatting datetime '2025-13-12T22:23:02': Failed to parse time string (2025-13-12T22:23:02) at position 6 (3): Unexpected character
[2025-12-14 04:23:24] [INFO]   -> Set field 'inService' = null
[2025-12-14 04:23:24] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-14 04:23:24] [INFO]   -> Found value: SIK STILL
[2025-12-14 04:23:24] [INFO]   -> Set field 'cADVehicleID' = "SIK STILL"
[2025-12-14 04:23:24] [INFO]   -> Set field 'name' = "SIK STILL"
[2025-12-14 04:23:24] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-14 04:23:24] [INFO]   -> No value found (null or empty)
[2025-12-14 04:23:24] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-14 04:23:24] [INFO]   -> No value found (null or empty)
[2025-12-14 04:23:24] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-14 04:23:24] [INFO]   -> Found value: 12-13-2025T22:23:02
[2025-12-14 04:23:24] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T22:23:02
[2025-12-14 04:23:24] [ERROR] Error formatting datetime '2025-13-12T22:23:02': Failed to parse time string (2025-13-12T22:23:02) at position 6 (3): Unexpected character
[2025-12-14 04:23:24] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-14 04:23:24] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-14 04:23:24] [INFO]   -> Found value: 12-13-2025T21:45:54
[2025-12-14 04:23:24] [INFO] Reformatted DD-MM-YYYY date '12-13-2025' (day=12, month=13) to ISO: 2025-13-12T21:45:54
[2025-12-14 04:23:24] [ERROR] Error formatting datetime '2025-13-12T21:45:54': Failed to parse time string (2025-13-12T21:45:54) at position 6 (3): Unexpected character
[2025-12-14 04:23:24] [INFO]   -> Set field 'timedispatch' = null
[2025-12-14 04:23:24] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-14 04:23:24] [INFO]   -> Found value: SDPSFD
[2025-12-14 04:23:24] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2025-12-14 04:23:24] [INFO] Finished extracting fields. Total fields extracted: 22
[2025-12-14 04:23:24] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-14 04:23:24] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-29664","incidentLocationStreetNumber":1551,"streetName":"W WAKEFIELD AVE","incidentLocationCity":"SIKESTON","businessName":"SIKESTON POWER PLANT","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-COAL TRAIN STANDBY","dispatchNotes":"12-13-2025 21:43:40|ARRIVNG FROM THE NORTH","cADLog":"12-13-2025 21:43:40|ARRIVNG FROM THE NORTH","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-14 04:23:24] [INFO] Number of extracted fields: 23
[2025-12-14 04:23:24] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2025-12-14 04:23:24] [INFO] Multi-agency routing check: CAD Agency ID = SDPSFD, Assigned Agencies count = 2
[2025-12-14 04:23:24] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'SDPSFD'
[2025-12-14 04:23:24] [INFO] Found SAASClient match: ID = 6772cab7157b2ebde, Name = Sikeston DPS
[2025-12-14 04:23:24] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) based on CAD ID: 'SDPSFD'
[2025-12-14 04:23:24] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-14 04:23:24] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-14 04:23:24] [INFO] Updated FTPFiles record saasclientId to routed agency: 6772cab7157b2ebde
[2025-12-14 04:23:24] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e8608a02f9
[2025-12-14 04:23:25] [INFO] Created new Dispatches record with ID: 693e3bbc60f9dc4b7
[2025-12-14 04:23:25] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29664.xml
[2025-12-14 04:23:25] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29664.xml
[2025-12-14 07:11:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137008_20251214_071159.XML
[2025-12-14 07:11:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137008_20251214_071159.XML for user: 68f1466aed072ad4a
[2025-12-14 07:11:59] [INFO] File size: 5709 bytes
[2025-12-14 07:12:00] [INFO] Created FTPFiles record with ID: 693e63402182645f5
[2025-12-14 07:12:00] [INFO] About to extract fields from XML. File size: 5709 bytes
[2025-12-14 07:12:00] [INFO] Number of mappings: 26
[2025-12-14 07:12:00] [INFO] Starting XML parsing. Content length: 5709
[2025-12-14 07:12:00] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 07:12:00] [INFO] Processing 26 field mappings
[2025-12-14 07:12:00] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 07:12:00] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2025-12-14 07:12:00] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2025-12-14 07:12:00] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2025-12-14 07:12:00] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 07:12:00] [INFO] Found 4 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-14 07:12:00] [INFO]   -> Found value: 2025003049
2025019388
[2025-12-14 07:12:00] [INFO]   -> Set field 'incidentInternalId' = "2025003049\n2025019388"
[2025-12-14 07:12:00] [INFO]   -> Set field 'dispatchRunNumber' = "2025003049\n2025019388"
[2025-12-14 07:12:00] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 07:12:00] [INFO]   -> Found value: UNCONSCIOUS
[2025-12-14 07:12:00] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2025-12-14 07:12:00] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 07:12:00] [INFO]   -> Found value: 1530
[2025-12-14 07:12:00] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1530
[2025-12-14 07:12:00] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 07:12:00] [INFO]   -> Found value: TURKEY HOLLOW RD
[2025-12-14 07:12:00] [INFO]   -> Set field 'streetName' = "TURKEY HOLLOW RD"
[2025-12-14 07:12:00] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 07:12:00] [INFO]   -> Found value: BAXTER
[2025-12-14 07:12:00] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2025-12-14 07:12:00] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 07:12:00] [INFO]   -> Found value: TN
[2025-12-14 07:12:00] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 07:12:00] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 07:12:00] [INFO]   -> Found value: 38544
[2025-12-14 07:12:00] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2025-12-14 07:12:00] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 07:12:00] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:00] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 07:12:00] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:00] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 07:12:00] [INFO]   -> Found value: 36.18899
[2025-12-14 07:12:00] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18899
[2025-12-14 07:12:00] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 07:12:00] [INFO]   -> Found value: -85.66518
[2025-12-14 07:12:00] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.66518
[2025-12-14 07:12:00] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 07:12:00] [INFO]   -> Found value: 2025-12-14 01:11:30
[2025-12-14 07:12:00] [INFO]   -> Set field 'alarm' = "2025-12-14 01:11:30"
[2025-12-14 07:12:00] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 07:12:00] [INFO]   -> Found value: 2025-12-14 01:11:52
[2025-12-14 07:12:00] [INFO]   -> Set field 'dispatched' = "2025-12-14 01:11:52"
[2025-12-14 07:12:00] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 07:12:00] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:00] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 07:12:00] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:00] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 07:12:00] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:00] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 07:12:00] [INFO]   -> Found value: BRYANT RIDGE RD/FINIS RODGERS RD
[2025-12-14 07:12:00] [INFO]   -> Set field 'incidentLocationCross' = "BRYANT RIDGE RD\/FINIS RODGERS RD"
[2025-12-14 07:12:00] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 07:12:00] [INFO]   -> Found value: PCFR
[2025-12-14 07:12:00] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-14 07:12:00] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 07:12:00] [INFO]   -> Found value: 2025-12-14 01:11:52
[2025-12-14 07:12:00] [INFO]   -> Set field 'timedispatch' = "2025-12-14 01:11:52"
[2025-12-14 07:12:00] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 07:12:00] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:00] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 07:12:00] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:00] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 07:12:00] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:00] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 07:12:00] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:00] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 07:12:00] [INFO] Found 4 elements for 'CadInciNumber', concatenating 4 non-empty values
[2025-12-14 07:12:00] [INFO]   -> Found value: 20250137008
20250137006
20250137007
20250137009
[2025-12-14 07:12:00] [INFO]   -> Set field 'policeReportNumber' = "20250137008\n20250137006\n20250137007\n20250137009"
[2025-12-14 07:12:00] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 07:12:00] [INFO]   -> Found value: [APCO INTELLICOMM] Case ID: Vwu9oa25mf Caller Phone: 9318584039 Caller Name: RODGERS MICHAEL Inciden...
[2025-12-14 07:12:00] [INFO]   -> Set field 'dispatchNotes' = "[APCO INTELLICOMM] Case ID: Vwu9oa25mf Caller Phone: 9318584039 Caller Name: RODGERS MICHAEL Incident Location: 1530 TURKEY HOLLOW RD Incident Location Detail: BRYANT RIDGE RD\/FINIS RODGERS RD Nature: UNCONSCIOUS Incident #: 20250137006 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 01:11:32 PSUTIL01] Event spawned from UNCONSCIOUS.  [12\/14\/2025 01:11:30 BPICHE] fall victim semi responsive  [12\/14\/25 01:11:24 BPICHE]]"
[2025-12-14 07:12:00] [INFO]   -> Set field 'cADLog' = "[APCO INTELLICOMM] Case ID: Vwu9oa25mf Caller Phone: 9318584039 Caller Name: RODGERS MICHAEL Incident Location: 1530 TURKEY HOLLOW RD Incident Location Detail: BRYANT RIDGE RD\/FINIS RODGERS RD Nature: UNCONSCIOUS Incident #: 20250137006 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 01:11:32 PSUTIL01] Event spawned from UNCONSCIOUS.  [12\/14\/2025 01:11:30 BPICHE] fall victim semi responsive  [12\/14\/25 01:11:24 BPICHE]]"
[2025-12-14 07:12:00] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 07:12:00] [INFO] Built locationCoordinates from lat/lng: 36.18899,-85.66518
[2025-12-14 07:12:00] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2025003049\n2025019388","dispatchRunNumber":"2025003049\n2025019388","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":1530,"streetName":"TURKEY HOLLOW RD","incidentLocationCity":"BAXTER","incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.18899,"nERISIncidentLongitude":-85.66518,"alarm":"2025-12-14 01:11:30","dispatched":"2025-12-14 01:11:52","incidentLocationCross":"BRYANT RIDGE RD\/FINIS RODGERS RD","cADVehicleID":"PCFR","timedispatch":"2025-12-14 01:11:52","policeReportNumber":"20250137008\n20250137006\n20250137007\n20250137009","dispatchNotes":"[APCO INTELLICOMM] Case ID: Vwu9oa25mf Caller Phone: 9318584039 Caller Name: RODGERS MICHAEL Incident Location: 1530 TURKEY HOLLOW RD Incident Location Detail: BRYANT RIDGE RD\/FINIS RODGERS RD Nature: UNCONSCIOUS Incident #: 20250137006 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 01:11:32 PSUTIL01] Event spawned from UNCONSCIOUS.  [12\/14\/2025 01:11:30 BPICHE] fall victim semi responsive  [12\/14\/25 01:11:24 BPICHE]]","cADLog":"[APCO INTELLICOMM] Case ID: Vwu9oa25mf Caller Phone: 9318584039 Caller Name: RODGERS MICHAEL Incident Location: 1530 TURKEY HOLLOW RD Incident Location Detail: BRYANT RIDGE RD\/FINIS RODGERS RD Nature: UNCONSCIOUS Incident #: 20250137006 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 01:11:32 PSUTIL01] Event spawned from UNCONSCIOUS.  [12\/14\/2025 01:11:30 BPICHE] fall victim semi responsive  [12\/14\/25 01:11:24 BPICHE]]","locationCoordinates":"36.18899,-85.66518"}
[2025-12-14 07:12:00] [INFO] Number of extracted fields: 20
[2025-12-14 07:12:00] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2025-12-14 07:12:00] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
EMS
PCSO
RESC, Assigned Agencies count = 1
[2025-12-14 07:12:00] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
EMS
PCSO
RESC'
[2025-12-14 07:12:00] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2025-12-14 07:12:00] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 07:12:00] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 07:12:00] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2025-12-14 07:12:01] [INFO] Created new Dispatches record with ID: 693e63405806fe1dc
[2025-12-14 07:12:01] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137008_20251214_071159.XML
[2025-12-14 07:12:01] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137008_20251214_071159.XML
[2025-12-14 07:12:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137008_20251214_071200.XML
[2025-12-14 07:12:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137008_20251214_071200.XML for user: 68f1466aed072ad4a
[2025-12-14 07:12:01] [INFO] File size: 5709 bytes
[2025-12-14 07:12:01] [INFO] Created FTPFiles record with ID: 693e6341e1a7c7c8d
[2025-12-14 07:12:01] [INFO] About to extract fields from XML. File size: 5709 bytes
[2025-12-14 07:12:01] [INFO] Number of mappings: 26
[2025-12-14 07:12:01] [INFO] Starting XML parsing. Content length: 5709
[2025-12-14 07:12:01] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 07:12:01] [INFO] Processing 26 field mappings
[2025-12-14 07:12:01] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 07:12:01] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2025-12-14 07:12:01] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2025-12-14 07:12:01] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2025-12-14 07:12:01] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 07:12:01] [INFO] Found 4 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-14 07:12:01] [INFO]   -> Found value: 2025003049
2025019388
[2025-12-14 07:12:01] [INFO]   -> Set field 'incidentInternalId' = "2025003049\n2025019388"
[2025-12-14 07:12:01] [INFO]   -> Set field 'dispatchRunNumber' = "2025003049\n2025019388"
[2025-12-14 07:12:01] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 07:12:01] [INFO]   -> Found value: UNCONSCIOUS
[2025-12-14 07:12:01] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2025-12-14 07:12:01] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 07:12:01] [INFO]   -> Found value: 1530
[2025-12-14 07:12:01] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1530
[2025-12-14 07:12:01] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 07:12:01] [INFO]   -> Found value: TURKEY HOLLOW RD
[2025-12-14 07:12:01] [INFO]   -> Set field 'streetName' = "TURKEY HOLLOW RD"
[2025-12-14 07:12:01] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 07:12:01] [INFO]   -> Found value: BAXTER
[2025-12-14 07:12:01] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2025-12-14 07:12:01] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 07:12:01] [INFO]   -> Found value: TN
[2025-12-14 07:12:01] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 07:12:01] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 07:12:01] [INFO]   -> Found value: 38544
[2025-12-14 07:12:01] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2025-12-14 07:12:01] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 07:12:01] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:01] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 07:12:01] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:01] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 07:12:01] [INFO]   -> Found value: 36.18899
[2025-12-14 07:12:01] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18899
[2025-12-14 07:12:01] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 07:12:01] [INFO]   -> Found value: -85.66518
[2025-12-14 07:12:01] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.66518
[2025-12-14 07:12:01] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 07:12:01] [INFO]   -> Found value: 2025-12-14 01:11:30
[2025-12-14 07:12:01] [INFO]   -> Set field 'alarm' = "2025-12-14 01:11:30"
[2025-12-14 07:12:01] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 07:12:01] [INFO]   -> Found value: 2025-12-14 01:11:52
[2025-12-14 07:12:01] [INFO]   -> Set field 'dispatched' = "2025-12-14 01:11:52"
[2025-12-14 07:12:01] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 07:12:01] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:01] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 07:12:01] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:01] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 07:12:01] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:01] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 07:12:01] [INFO]   -> Found value: BRYANT RIDGE RD/FINIS RODGERS RD
[2025-12-14 07:12:01] [INFO]   -> Set field 'incidentLocationCross' = "BRYANT RIDGE RD\/FINIS RODGERS RD"
[2025-12-14 07:12:01] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 07:12:01] [INFO]   -> Found value: PCFR
[2025-12-14 07:12:01] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-14 07:12:01] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 07:12:01] [INFO]   -> Found value: 2025-12-14 01:11:52
[2025-12-14 07:12:01] [INFO]   -> Set field 'timedispatch' = "2025-12-14 01:11:52"
[2025-12-14 07:12:01] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 07:12:01] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:01] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 07:12:01] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:01] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 07:12:01] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:01] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 07:12:01] [INFO]   -> No value found (null or empty)
[2025-12-14 07:12:01] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 07:12:01] [INFO] Found 4 elements for 'CadInciNumber', concatenating 4 non-empty values
[2025-12-14 07:12:01] [INFO]   -> Found value: 20250137008
20250137006
20250137007
20250137009
[2025-12-14 07:12:01] [INFO]   -> Set field 'policeReportNumber' = "20250137008\n20250137006\n20250137007\n20250137009"
[2025-12-14 07:12:01] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 07:12:01] [INFO]   -> Found value: [APCO INTELLICOMM] Case ID: Vwu9oa25mf Caller Phone: 9318584039 Caller Name: RODGERS MICHAEL Inciden...
[2025-12-14 07:12:01] [INFO]   -> Set field 'dispatchNotes' = "[APCO INTELLICOMM] Case ID: Vwu9oa25mf Caller Phone: 9318584039 Caller Name: RODGERS MICHAEL Incident Location: 1530 TURKEY HOLLOW RD Incident Location Detail: BRYANT RIDGE RD\/FINIS RODGERS RD Nature: UNCONSCIOUS Incident #: 20250137006 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 01:11:32 PSUTIL01] Event spawned from UNCONSCIOUS.  [12\/14\/2025 01:11:30 BPICHE] fall victim semi responsive  [12\/14\/25 01:11:24 BPICHE]]"
[2025-12-14 07:12:01] [INFO]   -> Set field 'cADLog' = "[APCO INTELLICOMM] Case ID: Vwu9oa25mf Caller Phone: 9318584039 Caller Name: RODGERS MICHAEL Incident Location: 1530 TURKEY HOLLOW RD Incident Location Detail: BRYANT RIDGE RD\/FINIS RODGERS RD Nature: UNCONSCIOUS Incident #: 20250137006 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 01:11:32 PSUTIL01] Event spawned from UNCONSCIOUS.  [12\/14\/2025 01:11:30 BPICHE] fall victim semi responsive  [12\/14\/25 01:11:24 BPICHE]]"
[2025-12-14 07:12:01] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 07:12:01] [INFO] Built locationCoordinates from lat/lng: 36.18899,-85.66518
[2025-12-14 07:12:01] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2025003049\n2025019388","dispatchRunNumber":"2025003049\n2025019388","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":1530,"streetName":"TURKEY HOLLOW RD","incidentLocationCity":"BAXTER","incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.18899,"nERISIncidentLongitude":-85.66518,"alarm":"2025-12-14 01:11:30","dispatched":"2025-12-14 01:11:52","incidentLocationCross":"BRYANT RIDGE RD\/FINIS RODGERS RD","cADVehicleID":"PCFR","timedispatch":"2025-12-14 01:11:52","policeReportNumber":"20250137008\n20250137006\n20250137007\n20250137009","dispatchNotes":"[APCO INTELLICOMM] Case ID: Vwu9oa25mf Caller Phone: 9318584039 Caller Name: RODGERS MICHAEL Incident Location: 1530 TURKEY HOLLOW RD Incident Location Detail: BRYANT RIDGE RD\/FINIS RODGERS RD Nature: UNCONSCIOUS Incident #: 20250137006 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 01:11:32 PSUTIL01] Event spawned from UNCONSCIOUS.  [12\/14\/2025 01:11:30 BPICHE] fall victim semi responsive  [12\/14\/25 01:11:24 BPICHE]]","cADLog":"[APCO INTELLICOMM] Case ID: Vwu9oa25mf Caller Phone: 9318584039 Caller Name: RODGERS MICHAEL Incident Location: 1530 TURKEY HOLLOW RD Incident Location Detail: BRYANT RIDGE RD\/FINIS RODGERS RD Nature: UNCONSCIOUS Incident #: 20250137006 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 01:11:32 PSUTIL01] Event spawned from UNCONSCIOUS.  [12\/14\/2025 01:11:30 BPICHE] fall victim semi responsive  [12\/14\/25 01:11:24 BPICHE]]","locationCoordinates":"36.18899,-85.66518"}
[2025-12-14 07:12:01] [INFO] Number of extracted fields: 20
[2025-12-14 07:12:01] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2025-12-14 07:12:01] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
EMS
PCSO
RESC, Assigned Agencies count = 1
[2025-12-14 07:12:01] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
EMS
PCSO
RESC'
[2025-12-14 07:12:01] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2025-12-14 07:12:01] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 07:12:01] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 07:12:02] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2025-12-14 07:12:02] [INFO] Found existing Dispatch with cADNumber '2025003049
2025019388', ID: 693e63405806fe1dc - will update instead of create
[2025-12-14 07:12:02] [INFO] Updated existing Dispatches record with ID: 693e63405806fe1dc
[2025-12-14 07:12:02] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137008_20251214_071200.XML
[2025-12-14 07:12:02] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137008_20251214_071200.XML
[2025-12-14 08:54:29] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137016_20251214_085429.XML
[2025-12-14 08:54:29] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137016_20251214_085429.XML for user: 68f1466aed072ad4a
[2025-12-14 08:54:29] [INFO] File size: 5247 bytes
[2025-12-14 08:54:30] [INFO] Created FTPFiles record with ID: 693e7b4613ccb9846
[2025-12-14 08:54:30] [INFO] About to extract fields from XML. File size: 5247 bytes
[2025-12-14 08:54:30] [INFO] Number of mappings: 26
[2025-12-14 08:54:30] [INFO] Starting XML parsing. Content length: 5247
[2025-12-14 08:54:30] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 08:54:30] [INFO] Processing 26 field mappings
[2025-12-14 08:54:30] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 08:54:30] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-14 08:54:30] [INFO]   -> Found value: PCFD
PCSO
EMS
[2025-12-14 08:54:30] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO\nEMS"
[2025-12-14 08:54:30] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 08:54:30] [INFO] Found 3 elements for 'ReportNumber', concatenating 1 non-empty values
[2025-12-14 08:54:30] [INFO]   -> Found value: 2025003050
[2025-12-14 08:54:30] [INFO]   -> Set field 'incidentInternalId' = "2025003050"
[2025-12-14 08:54:30] [INFO]   -> Set field 'dispatchRunNumber' = "2025003050"
[2025-12-14 08:54:30] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 08:54:30] [INFO]   -> Found value: RESIDENTIAL FIRE
[2025-12-14 08:54:30] [INFO]   -> Set field 'incidentTypeValue1' = "RESIDENTIAL FIRE"
[2025-12-14 08:54:30] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 08:54:30] [INFO]   -> Found value: 2878
[2025-12-14 08:54:30] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2878
[2025-12-14 08:54:30] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 08:54:30] [INFO]   -> Found value: ZEB WARREN RD
[2025-12-14 08:54:30] [INFO]   -> Set field 'streetName' = "ZEB WARREN RD"
[2025-12-14 08:54:30] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 08:54:30] [INFO]   -> Found value: COOKEVILLE
[2025-12-14 08:54:30] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-14 08:54:30] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 08:54:30] [INFO]   -> Found value: TN
[2025-12-14 08:54:30] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 08:54:30] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 08:54:30] [INFO]   -> Found value: 38506
[2025-12-14 08:54:30] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-14 08:54:30] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 08:54:30] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:30] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 08:54:30] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:30] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 08:54:30] [INFO]   -> Found value: 36.24888
[2025-12-14 08:54:30] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.24888
[2025-12-14 08:54:30] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 08:54:30] [INFO]   -> Found value: -85.45218
[2025-12-14 08:54:30] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.45218
[2025-12-14 08:54:30] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 08:54:30] [INFO]   -> Found value: 2025-12-14 02:52:51
[2025-12-14 08:54:30] [INFO]   -> Set field 'alarm' = "2025-12-14 02:52:51"
[2025-12-14 08:54:30] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 08:54:30] [INFO]   -> Found value: 2025-12-14 02:54:18
[2025-12-14 08:54:30] [INFO]   -> Set field 'dispatched' = "2025-12-14 02:54:18"
[2025-12-14 08:54:30] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 08:54:30] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:30] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 08:54:30] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:30] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 08:54:30] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:30] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 08:54:30] [INFO]   -> Found value: DANIELS LN/PARAN RD
[2025-12-14 08:54:30] [INFO]   -> Set field 'incidentLocationCross' = "DANIELS LN\/PARAN RD"
[2025-12-14 08:54:30] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 08:54:30] [INFO]   -> Found value: TK12
[2025-12-14 08:54:30] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2025-12-14 08:54:30] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 08:54:30] [INFO]   -> Found value: 2025-12-14 02:54:18
[2025-12-14 08:54:30] [INFO]   -> Set field 'timedispatch' = "2025-12-14 02:54:18"
[2025-12-14 08:54:30] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 08:54:30] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:30] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 08:54:30] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:30] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 08:54:30] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:30] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 08:54:30] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:30] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 08:54:30] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-14 08:54:30] [INFO]   -> Found value: 20250137016
20250137018
20250137019
[2025-12-14 08:54:30] [INFO]   -> Set field 'policeReportNumber' = "20250137016\n20250137018\n20250137019"
[2025-12-14 08:54:30] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 08:54:30] [INFO]   -> Found value: [EMS] POSS COMING FROM THE KITCHEN AREA  [12/14/25 02:54:18 TSCOTT] [EMS] EVERYBODY IS OUT OF THE HO...
[2025-12-14 08:54:30] [INFO]   -> Set field 'dispatchNotes' = "[EMS] POSS COMING FROM THE KITCHEN AREA  [12\/14\/25 02:54:18 TSCOTT] [EMS] EVERYBODY IS OUT OF THE HOUSE PER CALLER  [12\/14\/25 02:53:57 TSCOTT] mother`s home is on fire  [12\/14\/25 02:53:33 TSCOTT]"
[2025-12-14 08:54:30] [INFO]   -> Set field 'cADLog' = "[EMS] POSS COMING FROM THE KITCHEN AREA  [12\/14\/25 02:54:18 TSCOTT] [EMS] EVERYBODY IS OUT OF THE HOUSE PER CALLER  [12\/14\/25 02:53:57 TSCOTT] mother`s home is on fire  [12\/14\/25 02:53:33 TSCOTT]"
[2025-12-14 08:54:30] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 08:54:30] [INFO] Built locationCoordinates from lat/lng: 36.24888,-85.45218
[2025-12-14 08:54:30] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO\nEMS","incidentInternalId":"2025003050","dispatchRunNumber":"2025003050","incidentTypeValue1":"RESIDENTIAL FIRE","incidentLocationStreetNumber":2878,"streetName":"ZEB WARREN RD","incidentLocationCity":"COOKEVILLE","incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.24888,"nERISIncidentLongitude":-85.45218,"alarm":"2025-12-14 02:52:51","dispatched":"2025-12-14 02:54:18","incidentLocationCross":"DANIELS LN\/PARAN RD","cADVehicleID":"TK12","timedispatch":"2025-12-14 02:54:18","policeReportNumber":"20250137016\n20250137018\n20250137019","dispatchNotes":"[EMS] POSS COMING FROM THE KITCHEN AREA  [12\/14\/25 02:54:18 TSCOTT] [EMS] EVERYBODY IS OUT OF THE HOUSE PER CALLER  [12\/14\/25 02:53:57 TSCOTT] mother`s home is on fire  [12\/14\/25 02:53:33 TSCOTT]","cADLog":"[EMS] POSS COMING FROM THE KITCHEN AREA  [12\/14\/25 02:54:18 TSCOTT] [EMS] EVERYBODY IS OUT OF THE HOUSE PER CALLER  [12\/14\/25 02:53:57 TSCOTT] mother`s home is on fire  [12\/14\/25 02:53:33 TSCOTT]","locationCoordinates":"36.24888,-85.45218"}
[2025-12-14 08:54:30] [INFO] Number of extracted fields: 20
[2025-12-14 08:54:30] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO
EMS'
[2025-12-14 08:54:30] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
PCSO
EMS, Assigned Agencies count = 1
[2025-12-14 08:54:30] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
PCSO
EMS'
[2025-12-14 08:54:30] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
PCSO
EMS'
[2025-12-14 08:54:30] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 08:54:30] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 08:54:30] [INFO] Found existing IncidentTypeMapping with ID: 693a30ec30d9fce11
[2025-12-14 08:54:31] [INFO] Created new Dispatches record with ID: 693e7b4654b71d36c
[2025-12-14 08:54:31] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137016_20251214_085429.XML
[2025-12-14 08:54:31] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137016_20251214_085429.XML
[2025-12-14 08:54:31] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137016_20251214_085430.XML
[2025-12-14 08:54:31] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137016_20251214_085430.XML for user: 68f1466aed072ad4a
[2025-12-14 08:54:31] [INFO] File size: 5247 bytes
[2025-12-14 08:54:31] [INFO] Created FTPFiles record with ID: 693e7b47ae28d12b9
[2025-12-14 08:54:31] [INFO] About to extract fields from XML. File size: 5247 bytes
[2025-12-14 08:54:31] [INFO] Number of mappings: 26
[2025-12-14 08:54:31] [INFO] Starting XML parsing. Content length: 5247
[2025-12-14 08:54:31] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 08:54:31] [INFO] Processing 26 field mappings
[2025-12-14 08:54:31] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 08:54:31] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-14 08:54:31] [INFO]   -> Found value: PCFD
PCSO
EMS
[2025-12-14 08:54:31] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO\nEMS"
[2025-12-14 08:54:31] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 08:54:31] [INFO] Found 3 elements for 'ReportNumber', concatenating 1 non-empty values
[2025-12-14 08:54:31] [INFO]   -> Found value: 2025003050
[2025-12-14 08:54:31] [INFO]   -> Set field 'incidentInternalId' = "2025003050"
[2025-12-14 08:54:31] [INFO]   -> Set field 'dispatchRunNumber' = "2025003050"
[2025-12-14 08:54:31] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 08:54:31] [INFO]   -> Found value: RESIDENTIAL FIRE
[2025-12-14 08:54:31] [INFO]   -> Set field 'incidentTypeValue1' = "RESIDENTIAL FIRE"
[2025-12-14 08:54:31] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 08:54:31] [INFO]   -> Found value: 2878
[2025-12-14 08:54:31] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2878
[2025-12-14 08:54:31] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 08:54:31] [INFO]   -> Found value: ZEB WARREN RD
[2025-12-14 08:54:31] [INFO]   -> Set field 'streetName' = "ZEB WARREN RD"
[2025-12-14 08:54:31] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 08:54:31] [INFO]   -> Found value: COOKEVILLE
[2025-12-14 08:54:31] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-14 08:54:31] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 08:54:31] [INFO]   -> Found value: TN
[2025-12-14 08:54:31] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 08:54:31] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 08:54:31] [INFO]   -> Found value: 38506
[2025-12-14 08:54:31] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-14 08:54:31] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 08:54:31] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:31] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 08:54:31] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:31] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 08:54:31] [INFO]   -> Found value: 36.24888
[2025-12-14 08:54:31] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.24888
[2025-12-14 08:54:31] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 08:54:31] [INFO]   -> Found value: -85.45218
[2025-12-14 08:54:31] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.45218
[2025-12-14 08:54:31] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 08:54:31] [INFO]   -> Found value: 2025-12-14 02:52:51
[2025-12-14 08:54:31] [INFO]   -> Set field 'alarm' = "2025-12-14 02:52:51"
[2025-12-14 08:54:31] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 08:54:31] [INFO]   -> Found value: 2025-12-14 02:54:18
[2025-12-14 08:54:31] [INFO]   -> Set field 'dispatched' = "2025-12-14 02:54:18"
[2025-12-14 08:54:31] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 08:54:31] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:31] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 08:54:31] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:31] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 08:54:31] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:31] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 08:54:31] [INFO]   -> Found value: DANIELS LN/PARAN RD
[2025-12-14 08:54:31] [INFO]   -> Set field 'incidentLocationCross' = "DANIELS LN\/PARAN RD"
[2025-12-14 08:54:31] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 08:54:31] [INFO]   -> Found value: TK12
[2025-12-14 08:54:31] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2025-12-14 08:54:31] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 08:54:31] [INFO]   -> Found value: 2025-12-14 02:54:18
[2025-12-14 08:54:31] [INFO]   -> Set field 'timedispatch' = "2025-12-14 02:54:18"
[2025-12-14 08:54:31] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 08:54:31] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:31] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 08:54:31] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:31] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 08:54:31] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:31] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 08:54:31] [INFO]   -> No value found (null or empty)
[2025-12-14 08:54:31] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 08:54:31] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-14 08:54:31] [INFO]   -> Found value: 20250137016
20250137018
20250137019
[2025-12-14 08:54:31] [INFO]   -> Set field 'policeReportNumber' = "20250137016\n20250137018\n20250137019"
[2025-12-14 08:54:31] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 08:54:31] [INFO]   -> Found value: [EMS] POSS COMING FROM THE KITCHEN AREA  [12/14/25 02:54:18 TSCOTT] [EMS] EVERYBODY IS OUT OF THE HO...
[2025-12-14 08:54:31] [INFO]   -> Set field 'dispatchNotes' = "[EMS] POSS COMING FROM THE KITCHEN AREA  [12\/14\/25 02:54:18 TSCOTT] [EMS] EVERYBODY IS OUT OF THE HOUSE PER CALLER  [12\/14\/25 02:53:57 TSCOTT] mother`s home is on fire  [12\/14\/25 02:53:33 TSCOTT]"
[2025-12-14 08:54:31] [INFO]   -> Set field 'cADLog' = "[EMS] POSS COMING FROM THE KITCHEN AREA  [12\/14\/25 02:54:18 TSCOTT] [EMS] EVERYBODY IS OUT OF THE HOUSE PER CALLER  [12\/14\/25 02:53:57 TSCOTT] mother`s home is on fire  [12\/14\/25 02:53:33 TSCOTT]"
[2025-12-14 08:54:31] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 08:54:31] [INFO] Built locationCoordinates from lat/lng: 36.24888,-85.45218
[2025-12-14 08:54:31] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO\nEMS","incidentInternalId":"2025003050","dispatchRunNumber":"2025003050","incidentTypeValue1":"RESIDENTIAL FIRE","incidentLocationStreetNumber":2878,"streetName":"ZEB WARREN RD","incidentLocationCity":"COOKEVILLE","incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.24888,"nERISIncidentLongitude":-85.45218,"alarm":"2025-12-14 02:52:51","dispatched":"2025-12-14 02:54:18","incidentLocationCross":"DANIELS LN\/PARAN RD","cADVehicleID":"TK12","timedispatch":"2025-12-14 02:54:18","policeReportNumber":"20250137016\n20250137018\n20250137019","dispatchNotes":"[EMS] POSS COMING FROM THE KITCHEN AREA  [12\/14\/25 02:54:18 TSCOTT] [EMS] EVERYBODY IS OUT OF THE HOUSE PER CALLER  [12\/14\/25 02:53:57 TSCOTT] mother`s home is on fire  [12\/14\/25 02:53:33 TSCOTT]","cADLog":"[EMS] POSS COMING FROM THE KITCHEN AREA  [12\/14\/25 02:54:18 TSCOTT] [EMS] EVERYBODY IS OUT OF THE HOUSE PER CALLER  [12\/14\/25 02:53:57 TSCOTT] mother`s home is on fire  [12\/14\/25 02:53:33 TSCOTT]","locationCoordinates":"36.24888,-85.45218"}
[2025-12-14 08:54:31] [INFO] Number of extracted fields: 20
[2025-12-14 08:54:31] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO
EMS'
[2025-12-14 08:54:31] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
PCSO
EMS, Assigned Agencies count = 1
[2025-12-14 08:54:31] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
PCSO
EMS'
[2025-12-14 08:54:31] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
PCSO
EMS'
[2025-12-14 08:54:31] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 08:54:31] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 08:54:31] [INFO] Found existing IncidentTypeMapping with ID: 693a30ec30d9fce11
[2025-12-14 08:54:31] [INFO] Found existing Dispatch with cADNumber '2025003050', ID: 693e7b4654b71d36c - will update instead of create
[2025-12-14 08:54:32] [INFO] Updated existing Dispatches record with ID: 693e7b4654b71d36c
[2025-12-14 08:54:32] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137016_20251214_085430.XML
[2025-12-14 08:54:32] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137016_20251214_085430.XML
[2025-12-14 09:07:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137026_20251214_090749.XML
[2025-12-14 09:07:49] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137026_20251214_090749.XML for user: 68f1466aed072ad4a
[2025-12-14 09:07:49] [INFO] File size: 5620 bytes
[2025-12-14 09:07:50] [INFO] Created FTPFiles record with ID: 693e7e660cdcbf8e9
[2025-12-14 09:07:50] [INFO] About to extract fields from XML. File size: 5620 bytes
[2025-12-14 09:07:50] [INFO] Number of mappings: 26
[2025-12-14 09:07:50] [INFO] Starting XML parsing. Content length: 5620
[2025-12-14 09:07:50] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 09:07:50] [INFO] Processing 26 field mappings
[2025-12-14 09:07:50] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 09:07:50] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-14 09:07:50] [INFO]   -> Found value: PCFD
EMS
RESC
[2025-12-14 09:07:50] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2025-12-14 09:07:50] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 09:07:50] [INFO] Found 3 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-14 09:07:50] [INFO]   -> Found value: 2025003051
2025019391
[2025-12-14 09:07:50] [INFO]   -> Set field 'incidentInternalId' = "2025003051\n2025019391"
[2025-12-14 09:07:50] [INFO]   -> Set field 'dispatchRunNumber' = "2025003051\n2025019391"
[2025-12-14 09:07:50] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 09:07:50] [INFO]   -> Found value: BREATHING PROBLEMS
[2025-12-14 09:07:50] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2025-12-14 09:07:50] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 09:07:50] [INFO]   -> Found value: 1189
[2025-12-14 09:07:50] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1189
[2025-12-14 09:07:50] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 09:07:50] [INFO]   -> Found value: BUNKER HILL RD
[2025-12-14 09:07:50] [INFO]   -> Set field 'streetName' = "BUNKER HILL RD"
[2025-12-14 09:07:50] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 09:07:50] [INFO]   -> Found value: COOKEVILLE
[2025-12-14 09:07:50] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-14 09:07:50] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 09:07:50] [INFO]   -> Found value: TN
[2025-12-14 09:07:50] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 09:07:50] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 09:07:50] [INFO]   -> Found value: 38506
[2025-12-14 09:07:50] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-14 09:07:50] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 09:07:50] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:50] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 09:07:50] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:50] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 09:07:50] [INFO]   -> Found value: 36.11619
[2025-12-14 09:07:50] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.11619
[2025-12-14 09:07:50] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 09:07:50] [INFO]   -> Found value: -85.53893
[2025-12-14 09:07:50] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.53893
[2025-12-14 09:07:50] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 09:07:50] [INFO]   -> Found value: 2025-12-14 03:06:13
[2025-12-14 09:07:50] [INFO]   -> Set field 'alarm' = "2025-12-14 03:06:13"
[2025-12-14 09:07:50] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 09:07:50] [INFO]   -> Found value: 2025-12-14 03:07:42
[2025-12-14 09:07:50] [INFO]   -> Set field 'dispatched' = "2025-12-14 03:07:42"
[2025-12-14 09:07:50] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 09:07:50] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:50] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 09:07:50] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:50] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 09:07:50] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:50] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 09:07:50] [INFO]   -> Found value: PREAKNESS DR/PIMLICO DR
[2025-12-14 09:07:50] [INFO]   -> Set field 'incidentLocationCross' = "PREAKNESS DR\/PIMLICO DR"
[2025-12-14 09:07:50] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 09:07:50] [INFO]   -> Found value: PCFR
[2025-12-14 09:07:50] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-14 09:07:50] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 09:07:50] [INFO]   -> Found value: 2025-12-14 03:07:42
[2025-12-14 09:07:50] [INFO]   -> Set field 'timedispatch' = "2025-12-14 03:07:42"
[2025-12-14 09:07:50] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 09:07:50] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:50] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 09:07:50] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:50] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 09:07:50] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:50] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 09:07:50] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:50] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 09:07:50] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-14 09:07:50] [INFO]   -> Found value: 20250137026
20250137025
20250137027
[2025-12-14 09:07:50] [INFO]   -> Set field 'policeReportNumber' = "20250137026\n20250137025\n20250137027"
[2025-12-14 09:07:50] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 09:07:50] [INFO]   -> Found value: [EMS] BELIEVES SON HAS CRUPE  IS CURRENTLY GASPING FOR AIR  40 LB MALE  LOCATED IN THE HOME FRONT DO...
[2025-12-14 09:07:50] [INFO]   -> Set field 'dispatchNotes' = "[EMS] BELIEVES SON HAS CRUPE  IS CURRENTLY GASPING FOR AIR  40 LB MALE  LOCATED IN THE HOME FRONT DOOR IS UNLOCKED  [12\/14\/25 03:07:11 BPICHE] [APCO INTELLICOMM] Case ID: CsJKpsrVoP Caller Phone: 9313494167 Caller Name: null Incident Location: 1189 BELMONT DR Incident Location Detail: PREAKNESS DR\/PIMLICO DR Nature: BREATHING PROBLEMS Incident #: 20250137025 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 03:06:14 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/14\/2025 03:06:13 BPICHE] BELIEVES SONS AIR WAY IS CLOSING 21 MONTH  [12\/14\/25 03:06:08 BPICHE]]"
[2025-12-14 09:07:50] [INFO]   -> Set field 'cADLog' = "[EMS] BELIEVES SON HAS CRUPE  IS CURRENTLY GASPING FOR AIR  40 LB MALE  LOCATED IN THE HOME FRONT DOOR IS UNLOCKED  [12\/14\/25 03:07:11 BPICHE] [APCO INTELLICOMM] Case ID: CsJKpsrVoP Caller Phone: 9313494167 Caller Name: null Incident Location: 1189 BELMONT DR Incident Location Detail: PREAKNESS DR\/PIMLICO DR Nature: BREATHING PROBLEMS Incident #: 20250137025 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 03:06:14 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/14\/2025 03:06:13 BPICHE] BELIEVES SONS AIR WAY IS CLOSING 21 MONTH  [12\/14\/25 03:06:08 BPICHE]]"
[2025-12-14 09:07:50] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 09:07:50] [INFO] Built locationCoordinates from lat/lng: 36.11619,-85.53893
[2025-12-14 09:07:50] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2025003051\n2025019391","dispatchRunNumber":"2025003051\n2025019391","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":1189,"streetName":"BUNKER HILL RD","incidentLocationCity":"COOKEVILLE","incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.11619,"nERISIncidentLongitude":-85.53893,"alarm":"2025-12-14 03:06:13","dispatched":"2025-12-14 03:07:42","incidentLocationCross":"PREAKNESS DR\/PIMLICO DR","cADVehicleID":"PCFR","timedispatch":"2025-12-14 03:07:42","policeReportNumber":"20250137026\n20250137025\n20250137027","dispatchNotes":"[EMS] BELIEVES SON HAS CRUPE  IS CURRENTLY GASPING FOR AIR  40 LB MALE  LOCATED IN THE HOME FRONT DOOR IS UNLOCKED  [12\/14\/25 03:07:11 BPICHE] [APCO INTELLICOMM] Case ID: CsJKpsrVoP Caller Phone: 9313494167 Caller Name: null Incident Location: 1189 BELMONT DR Incident Location Detail: PREAKNESS DR\/PIMLICO DR Nature: BREATHING PROBLEMS Incident #: 20250137025 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 03:06:14 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/14\/2025 03:06:13 BPICHE] BELIEVES SONS AIR WAY IS CLOSING 21 MONTH  [12\/14\/25 03:06:08 BPICHE]]","cADLog":"[EMS] BELIEVES SON HAS CRUPE  IS CURRENTLY GASPING FOR AIR  40 LB MALE  LOCATED IN THE HOME FRONT DOOR IS UNLOCKED  [12\/14\/25 03:07:11 BPICHE] [APCO INTELLICOMM] Case ID: CsJKpsrVoP Caller Phone: 9313494167 Caller Name: null Incident Location: 1189 BELMONT DR Incident Location Detail: PREAKNESS DR\/PIMLICO DR Nature: BREATHING PROBLEMS Incident #: 20250137025 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 03:06:14 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/14\/2025 03:06:13 BPICHE] BELIEVES SONS AIR WAY IS CLOSING 21 MONTH  [12\/14\/25 03:06:08 BPICHE]]","locationCoordinates":"36.11619,-85.53893"}
[2025-12-14 09:07:50] [INFO] Number of extracted fields: 20
[2025-12-14 09:07:50] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 09:07:50] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
EMS
RESC, Assigned Agencies count = 1
[2025-12-14 09:07:50] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
EMS
RESC'
[2025-12-14 09:07:50] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 09:07:50] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 09:07:50] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 09:07:50] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2025-12-14 09:07:51] [INFO] Created new Dispatches record with ID: 693e7e663d86102ac
[2025-12-14 09:07:51] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137026_20251214_090749.XML
[2025-12-14 09:07:51] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137026_20251214_090749.XML
[2025-12-14 09:07:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137026_20251214_090750.XML
[2025-12-14 09:07:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137026_20251214_090750.XML for user: 68f1466aed072ad4a
[2025-12-14 09:07:51] [INFO] File size: 5620 bytes
[2025-12-14 09:07:51] [INFO] Created FTPFiles record with ID: 693e7e67a278e0346
[2025-12-14 09:07:51] [INFO] About to extract fields from XML. File size: 5620 bytes
[2025-12-14 09:07:51] [INFO] Number of mappings: 26
[2025-12-14 09:07:51] [INFO] Starting XML parsing. Content length: 5620
[2025-12-14 09:07:51] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 09:07:51] [INFO] Processing 26 field mappings
[2025-12-14 09:07:51] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 09:07:51] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-14 09:07:51] [INFO]   -> Found value: PCFD
EMS
RESC
[2025-12-14 09:07:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2025-12-14 09:07:51] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 09:07:51] [INFO] Found 3 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-14 09:07:51] [INFO]   -> Found value: 2025003051
2025019391
[2025-12-14 09:07:51] [INFO]   -> Set field 'incidentInternalId' = "2025003051\n2025019391"
[2025-12-14 09:07:51] [INFO]   -> Set field 'dispatchRunNumber' = "2025003051\n2025019391"
[2025-12-14 09:07:51] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 09:07:51] [INFO]   -> Found value: BREATHING PROBLEMS
[2025-12-14 09:07:51] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2025-12-14 09:07:51] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 09:07:51] [INFO]   -> Found value: 1189
[2025-12-14 09:07:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1189
[2025-12-14 09:07:51] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 09:07:51] [INFO]   -> Found value: BUNKER HILL RD
[2025-12-14 09:07:51] [INFO]   -> Set field 'streetName' = "BUNKER HILL RD"
[2025-12-14 09:07:51] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 09:07:51] [INFO]   -> Found value: COOKEVILLE
[2025-12-14 09:07:51] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-14 09:07:51] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 09:07:51] [INFO]   -> Found value: TN
[2025-12-14 09:07:51] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 09:07:51] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 09:07:51] [INFO]   -> Found value: 38506
[2025-12-14 09:07:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-14 09:07:51] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 09:07:51] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:51] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 09:07:51] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:51] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 09:07:51] [INFO]   -> Found value: 36.11619
[2025-12-14 09:07:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.11619
[2025-12-14 09:07:51] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 09:07:51] [INFO]   -> Found value: -85.53893
[2025-12-14 09:07:51] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.53893
[2025-12-14 09:07:51] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 09:07:51] [INFO]   -> Found value: 2025-12-14 03:06:13
[2025-12-14 09:07:51] [INFO]   -> Set field 'alarm' = "2025-12-14 03:06:13"
[2025-12-14 09:07:51] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 09:07:51] [INFO]   -> Found value: 2025-12-14 03:07:42
[2025-12-14 09:07:51] [INFO]   -> Set field 'dispatched' = "2025-12-14 03:07:42"
[2025-12-14 09:07:51] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 09:07:51] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:51] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 09:07:51] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:51] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 09:07:51] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:51] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 09:07:51] [INFO]   -> Found value: PREAKNESS DR/PIMLICO DR
[2025-12-14 09:07:51] [INFO]   -> Set field 'incidentLocationCross' = "PREAKNESS DR\/PIMLICO DR"
[2025-12-14 09:07:51] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 09:07:51] [INFO]   -> Found value: PCFR
[2025-12-14 09:07:51] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-14 09:07:51] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 09:07:51] [INFO]   -> Found value: 2025-12-14 03:07:42
[2025-12-14 09:07:51] [INFO]   -> Set field 'timedispatch' = "2025-12-14 03:07:42"
[2025-12-14 09:07:51] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 09:07:51] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:51] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 09:07:51] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:51] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 09:07:51] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:51] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 09:07:51] [INFO]   -> No value found (null or empty)
[2025-12-14 09:07:51] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 09:07:51] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-14 09:07:51] [INFO]   -> Found value: 20250137026
20250137025
20250137027
[2025-12-14 09:07:51] [INFO]   -> Set field 'policeReportNumber' = "20250137026\n20250137025\n20250137027"
[2025-12-14 09:07:51] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 09:07:51] [INFO]   -> Found value: [EMS] BELIEVES SON HAS CRUPE  IS CURRENTLY GASPING FOR AIR  40 LB MALE  LOCATED IN THE HOME FRONT DO...
[2025-12-14 09:07:51] [INFO]   -> Set field 'dispatchNotes' = "[EMS] BELIEVES SON HAS CRUPE  IS CURRENTLY GASPING FOR AIR  40 LB MALE  LOCATED IN THE HOME FRONT DOOR IS UNLOCKED  [12\/14\/25 03:07:11 BPICHE] [APCO INTELLICOMM] Case ID: CsJKpsrVoP Caller Phone: 9313494167 Caller Name: null Incident Location: 1189 BELMONT DR Incident Location Detail: PREAKNESS DR\/PIMLICO DR Nature: BREATHING PROBLEMS Incident #: 20250137025 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 03:06:14 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/14\/2025 03:06:13 BPICHE] BELIEVES SONS AIR WAY IS CLOSING 21 MONTH  [12\/14\/25 03:06:08 BPICHE]]"
[2025-12-14 09:07:51] [INFO]   -> Set field 'cADLog' = "[EMS] BELIEVES SON HAS CRUPE  IS CURRENTLY GASPING FOR AIR  40 LB MALE  LOCATED IN THE HOME FRONT DOOR IS UNLOCKED  [12\/14\/25 03:07:11 BPICHE] [APCO INTELLICOMM] Case ID: CsJKpsrVoP Caller Phone: 9313494167 Caller Name: null Incident Location: 1189 BELMONT DR Incident Location Detail: PREAKNESS DR\/PIMLICO DR Nature: BREATHING PROBLEMS Incident #: 20250137025 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 03:06:14 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/14\/2025 03:06:13 BPICHE] BELIEVES SONS AIR WAY IS CLOSING 21 MONTH  [12\/14\/25 03:06:08 BPICHE]]"
[2025-12-14 09:07:51] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 09:07:51] [INFO] Built locationCoordinates from lat/lng: 36.11619,-85.53893
[2025-12-14 09:07:51] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2025003051\n2025019391","dispatchRunNumber":"2025003051\n2025019391","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":1189,"streetName":"BUNKER HILL RD","incidentLocationCity":"COOKEVILLE","incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.11619,"nERISIncidentLongitude":-85.53893,"alarm":"2025-12-14 03:06:13","dispatched":"2025-12-14 03:07:42","incidentLocationCross":"PREAKNESS DR\/PIMLICO DR","cADVehicleID":"PCFR","timedispatch":"2025-12-14 03:07:42","policeReportNumber":"20250137026\n20250137025\n20250137027","dispatchNotes":"[EMS] BELIEVES SON HAS CRUPE  IS CURRENTLY GASPING FOR AIR  40 LB MALE  LOCATED IN THE HOME FRONT DOOR IS UNLOCKED  [12\/14\/25 03:07:11 BPICHE] [APCO INTELLICOMM] Case ID: CsJKpsrVoP Caller Phone: 9313494167 Caller Name: null Incident Location: 1189 BELMONT DR Incident Location Detail: PREAKNESS DR\/PIMLICO DR Nature: BREATHING PROBLEMS Incident #: 20250137025 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 03:06:14 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/14\/2025 03:06:13 BPICHE] BELIEVES SONS AIR WAY IS CLOSING 21 MONTH  [12\/14\/25 03:06:08 BPICHE]]","cADLog":"[EMS] BELIEVES SON HAS CRUPE  IS CURRENTLY GASPING FOR AIR  40 LB MALE  LOCATED IN THE HOME FRONT DOOR IS UNLOCKED  [12\/14\/25 03:07:11 BPICHE] [APCO INTELLICOMM] Case ID: CsJKpsrVoP Caller Phone: 9313494167 Caller Name: null Incident Location: 1189 BELMONT DR Incident Location Detail: PREAKNESS DR\/PIMLICO DR Nature: BREATHING PROBLEMS Incident #: 20250137025 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/14\/25 03:06:14 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/14\/2025 03:06:13 BPICHE] BELIEVES SONS AIR WAY IS CLOSING 21 MONTH  [12\/14\/25 03:06:08 BPICHE]]","locationCoordinates":"36.11619,-85.53893"}
[2025-12-14 09:07:51] [INFO] Number of extracted fields: 20
[2025-12-14 09:07:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 09:07:51] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
EMS
RESC, Assigned Agencies count = 1
[2025-12-14 09:07:51] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
EMS
RESC'
[2025-12-14 09:07:51] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 09:07:51] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 09:07:51] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 09:07:51] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2025-12-14 09:07:51] [INFO] Found existing Dispatch with cADNumber '2025003051
2025019391', ID: 693e7e663d86102ac - will update instead of create
[2025-12-14 09:07:51] [INFO] Updated existing Dispatches record with ID: 693e7e663d86102ac
[2025-12-14 09:07:51] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137026_20251214_090750.XML
[2025-12-14 09:07:51] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137026_20251214_090750.XML
[2025-12-14 09:54:20] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137037_20251214_095420.XML
[2025-12-14 09:54:20] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137037_20251214_095420.XML for user: 68f1466aed072ad4a
[2025-12-14 09:54:20] [INFO] File size: 5785 bytes
[2025-12-14 09:54:20] [INFO] Created FTPFiles record with ID: 693e894c1fb14b518
[2025-12-14 09:54:20] [INFO] About to extract fields from XML. File size: 5785 bytes
[2025-12-14 09:54:20] [INFO] Number of mappings: 26
[2025-12-14 09:54:20] [INFO] Starting XML parsing. Content length: 5785
[2025-12-14 09:54:20] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 09:54:20] [INFO] Processing 26 field mappings
[2025-12-14 09:54:20] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 09:54:20] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2025-12-14 09:54:20] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2025-12-14 09:54:20] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2025-12-14 09:54:20] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 09:54:20] [INFO] Found 4 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-14 09:54:20] [INFO]   -> Found value: 2025003052
2025019393
[2025-12-14 09:54:20] [INFO]   -> Set field 'incidentInternalId' = "2025003052\n2025019393"
[2025-12-14 09:54:20] [INFO]   -> Set field 'dispatchRunNumber' = "2025003052\n2025019393"
[2025-12-14 09:54:20] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 09:54:20] [INFO]   -> Found value: MVC WITH INJURY
[2025-12-14 09:54:20] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2025-12-14 09:54:20] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 09:54:20] [INFO]   -> Found value: 304
[2025-12-14 09:54:20] [INFO]   -> Set field 'incidentLocationStreetNumber' = 304
[2025-12-14 09:54:20] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 09:54:20] [INFO]   -> Found value: CROSSVILLE HWY
[2025-12-14 09:54:20] [INFO]   -> Set field 'streetName' = "CROSSVILLE HWY"
[2025-12-14 09:54:20] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 09:54:20] [INFO]   -> Found value: MONTEREY
[2025-12-14 09:54:20] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2025-12-14 09:54:20] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 09:54:20] [INFO]   -> Found value: TN
[2025-12-14 09:54:20] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 09:54:20] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 09:54:20] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:20] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 09:54:20] [INFO]   -> Found value: MM304W
[2025-12-14 09:54:20] [INFO]   -> Set field 'businessName' = "MM304W"
[2025-12-14 09:54:20] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 09:54:20] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:20] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 09:54:20] [INFO]   -> Found value: 36.10674
[2025-12-14 09:54:20] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.10674
[2025-12-14 09:54:20] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 09:54:20] [INFO]   -> Found value: -85.23934
[2025-12-14 09:54:20] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.23934
[2025-12-14 09:54:20] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 09:54:20] [INFO]   -> Found value: 2025-12-14 03:53:01
[2025-12-14 09:54:20] [INFO]   -> Set field 'alarm' = "2025-12-14 03:53:01"
[2025-12-14 09:54:20] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 09:54:20] [INFO]   -> Found value: 2025-12-14 03:54:10
[2025-12-14 09:54:20] [INFO]   -> Set field 'dispatched' = "2025-12-14 03:54:10"
[2025-12-14 09:54:20] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 09:54:20] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:20] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 09:54:20] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:20] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 09:54:20] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:20] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 09:54:20] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:20] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 09:54:20] [INFO]   -> Found value: EN23
[2025-12-14 09:54:20] [INFO]   -> Set field 'cADVehicleID' = "EN23"
[2025-12-14 09:54:20] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 09:54:20] [INFO]   -> Found value: 2025-12-14 03:54:10
[2025-12-14 09:54:20] [INFO]   -> Set field 'timedispatch' = "2025-12-14 03:54:10"
[2025-12-14 09:54:20] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 09:54:20] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:20] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 09:54:20] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:20] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 09:54:20] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:20] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 09:54:20] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:20] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 09:54:20] [INFO] Found 4 elements for 'CadInciNumber', concatenating 4 non-empty values
[2025-12-14 09:54:20] [INFO]   -> Found value: 20250137037
20250137035
20250137036
20250137038
[2025-12-14 09:54:20] [INFO]   -> Set field 'policeReportNumber' = "20250137037\n20250137035\n20250137036\n20250137038"
[2025-12-14 09:54:20] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 09:54:20] [INFO]   -> Found value: [EMS] 304.2 PER CALLER  [12/14/25 03:53:44 TSCOTT] [EMS] UNKNOWN INJURY  UNKNOWN HAZARDS - TRANSFERE...
[2025-12-14 09:54:20] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 304.2 PER CALLER  [12\/14\/25 03:53:44 TSCOTT] [EMS] UNKNOWN INJURY  UNKNOWN HAZARDS - TRANSFERED TO THP  [12\/14\/25 03:53:38 TSCOTT] [EMS] SEMI TRUCK IN THE MEDIAN  [12\/14\/25 03:53:09 TSCOTT] [APCO INTELLICOMM] Case ID: Dz5UBEn-TG Caller Phone: 3306357442 Caller Name: AT&amp;T MOBILITY Incident Location: 304 W I 40 Incident Location Detail: (empty) Nature: MVC WITH INJURY Incident #: 20250137035 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/14\/25 03:53:03 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/14\/2025 03:53:01 TSCOTT]"
[2025-12-14 09:54:20] [INFO]   -> Set field 'cADLog' = "[EMS] 304.2 PER CALLER  [12\/14\/25 03:53:44 TSCOTT] [EMS] UNKNOWN INJURY  UNKNOWN HAZARDS - TRANSFERED TO THP  [12\/14\/25 03:53:38 TSCOTT] [EMS] SEMI TRUCK IN THE MEDIAN  [12\/14\/25 03:53:09 TSCOTT] [APCO INTELLICOMM] Case ID: Dz5UBEn-TG Caller Phone: 3306357442 Caller Name: AT&amp;T MOBILITY Incident Location: 304 W I 40 Incident Location Detail: (empty) Nature: MVC WITH INJURY Incident #: 20250137035 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/14\/25 03:53:03 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/14\/2025 03:53:01 TSCOTT]"
[2025-12-14 09:54:20] [INFO] Finished extracting fields. Total fields extracted: 18
[2025-12-14 09:54:20] [INFO] Built locationCoordinates from lat/lng: 36.10674,-85.23934
[2025-12-14 09:54:20] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2025003052\n2025019393","dispatchRunNumber":"2025003052\n2025019393","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":304,"streetName":"CROSSVILLE HWY","incidentLocationCity":"MONTEREY","incidentLocationStateName":"TN","businessName":"MM304W","nERISIncidentLatitude":36.10674,"nERISIncidentLongitude":-85.23934,"alarm":"2025-12-14 03:53:01","dispatched":"2025-12-14 03:54:10","cADVehicleID":"EN23","timedispatch":"2025-12-14 03:54:10","policeReportNumber":"20250137037\n20250137035\n20250137036\n20250137038","dispatchNotes":"[EMS] 304.2 PER CALLER  [12\/14\/25 03:53:44 TSCOTT] [EMS] UNKNOWN INJURY  UNKNOWN HAZARDS - TRANSFERED TO THP  [12\/14\/25 03:53:38 TSCOTT] [EMS] SEMI TRUCK IN THE MEDIAN  [12\/14\/25 03:53:09 TSCOTT] [APCO INTELLICOMM] Case ID: Dz5UBEn-TG Caller Phone: 3306357442 Caller Name: AT&amp;T MOBILITY Incident Location: 304 W I 40 Incident Location Detail: (empty) Nature: MVC WITH INJURY Incident #: 20250137035 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/14\/25 03:53:03 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/14\/2025 03:53:01 TSCOTT]","cADLog":"[EMS] 304.2 PER CALLER  [12\/14\/25 03:53:44 TSCOTT] [EMS] UNKNOWN INJURY  UNKNOWN HAZARDS - TRANSFERED TO THP  [12\/14\/25 03:53:38 TSCOTT] [EMS] SEMI TRUCK IN THE MEDIAN  [12\/14\/25 03:53:09 TSCOTT] [APCO INTELLICOMM] Case ID: Dz5UBEn-TG Caller Phone: 3306357442 Caller Name: AT&amp;T MOBILITY Incident Location: 304 W I 40 Incident Location Detail: (empty) Nature: MVC WITH INJURY Incident #: 20250137035 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/14\/25 03:53:03 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/14\/2025 03:53:01 TSCOTT]","locationCoordinates":"36.10674,-85.23934"}
[2025-12-14 09:54:20] [INFO] Number of extracted fields: 19
[2025-12-14 09:54:20] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2025-12-14 09:54:20] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
EMS
PCSO
RESC, Assigned Agencies count = 1
[2025-12-14 09:54:20] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
EMS
PCSO
RESC'
[2025-12-14 09:54:20] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2025-12-14 09:54:20] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 09:54:20] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 09:54:20] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2025-12-14 09:54:21] [INFO] Created new Dispatches record with ID: 693e894c558f23b2f
[2025-12-14 09:54:21] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137037_20251214_095420.XML
[2025-12-14 09:54:21] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137037_20251214_095420.XML
[2025-12-14 09:54:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137037_20251214_095420_1.XML
[2025-12-14 09:54:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137037_20251214_095420_1.XML for user: 68f1466aed072ad4a
[2025-12-14 09:54:21] [INFO] File size: 5785 bytes
[2025-12-14 09:54:22] [INFO] Created FTPFiles record with ID: 693e894df28f209f0
[2025-12-14 09:54:22] [INFO] About to extract fields from XML. File size: 5785 bytes
[2025-12-14 09:54:22] [INFO] Number of mappings: 26
[2025-12-14 09:54:22] [INFO] Starting XML parsing. Content length: 5785
[2025-12-14 09:54:22] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 09:54:22] [INFO] Processing 26 field mappings
[2025-12-14 09:54:22] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 09:54:22] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2025-12-14 09:54:22] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2025-12-14 09:54:22] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2025-12-14 09:54:22] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 09:54:22] [INFO] Found 4 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-14 09:54:22] [INFO]   -> Found value: 2025003052
2025019393
[2025-12-14 09:54:22] [INFO]   -> Set field 'incidentInternalId' = "2025003052\n2025019393"
[2025-12-14 09:54:22] [INFO]   -> Set field 'dispatchRunNumber' = "2025003052\n2025019393"
[2025-12-14 09:54:22] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 09:54:22] [INFO]   -> Found value: MVC WITH INJURY
[2025-12-14 09:54:22] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2025-12-14 09:54:22] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 09:54:22] [INFO]   -> Found value: 304
[2025-12-14 09:54:22] [INFO]   -> Set field 'incidentLocationStreetNumber' = 304
[2025-12-14 09:54:22] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 09:54:22] [INFO]   -> Found value: CROSSVILLE HWY
[2025-12-14 09:54:22] [INFO]   -> Set field 'streetName' = "CROSSVILLE HWY"
[2025-12-14 09:54:22] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 09:54:22] [INFO]   -> Found value: MONTEREY
[2025-12-14 09:54:22] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2025-12-14 09:54:22] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 09:54:22] [INFO]   -> Found value: TN
[2025-12-14 09:54:22] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 09:54:22] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 09:54:22] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:22] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 09:54:22] [INFO]   -> Found value: MM304W
[2025-12-14 09:54:22] [INFO]   -> Set field 'businessName' = "MM304W"
[2025-12-14 09:54:22] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 09:54:22] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:22] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 09:54:22] [INFO]   -> Found value: 36.10674
[2025-12-14 09:54:22] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.10674
[2025-12-14 09:54:22] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 09:54:22] [INFO]   -> Found value: -85.23934
[2025-12-14 09:54:22] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.23934
[2025-12-14 09:54:22] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 09:54:22] [INFO]   -> Found value: 2025-12-14 03:53:01
[2025-12-14 09:54:22] [INFO]   -> Set field 'alarm' = "2025-12-14 03:53:01"
[2025-12-14 09:54:22] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 09:54:22] [INFO]   -> Found value: 2025-12-14 03:54:10
[2025-12-14 09:54:22] [INFO]   -> Set field 'dispatched' = "2025-12-14 03:54:10"
[2025-12-14 09:54:22] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 09:54:22] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:22] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 09:54:22] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:22] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 09:54:22] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:22] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 09:54:22] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:22] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 09:54:22] [INFO]   -> Found value: EN23
[2025-12-14 09:54:22] [INFO]   -> Set field 'cADVehicleID' = "EN23"
[2025-12-14 09:54:22] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 09:54:22] [INFO]   -> Found value: 2025-12-14 03:54:10
[2025-12-14 09:54:22] [INFO]   -> Set field 'timedispatch' = "2025-12-14 03:54:10"
[2025-12-14 09:54:22] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 09:54:22] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:22] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 09:54:22] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:22] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 09:54:22] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:22] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 09:54:22] [INFO]   -> No value found (null or empty)
[2025-12-14 09:54:22] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 09:54:22] [INFO] Found 4 elements for 'CadInciNumber', concatenating 4 non-empty values
[2025-12-14 09:54:22] [INFO]   -> Found value: 20250137037
20250137035
20250137036
20250137038
[2025-12-14 09:54:22] [INFO]   -> Set field 'policeReportNumber' = "20250137037\n20250137035\n20250137036\n20250137038"
[2025-12-14 09:54:22] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 09:54:22] [INFO]   -> Found value: [EMS] 304.2 PER CALLER  [12/14/25 03:53:44 TSCOTT] [EMS] UNKNOWN INJURY  UNKNOWN HAZARDS - TRANSFERE...
[2025-12-14 09:54:22] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 304.2 PER CALLER  [12\/14\/25 03:53:44 TSCOTT] [EMS] UNKNOWN INJURY  UNKNOWN HAZARDS - TRANSFERED TO THP  [12\/14\/25 03:53:38 TSCOTT] [EMS] SEMI TRUCK IN THE MEDIAN  [12\/14\/25 03:53:09 TSCOTT] [APCO INTELLICOMM] Case ID: Dz5UBEn-TG Caller Phone: 3306357442 Caller Name: AT&amp;T MOBILITY Incident Location: 304 W I 40 Incident Location Detail: (empty) Nature: MVC WITH INJURY Incident #: 20250137035 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/14\/25 03:53:03 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/14\/2025 03:53:01 TSCOTT]"
[2025-12-14 09:54:22] [INFO]   -> Set field 'cADLog' = "[EMS] 304.2 PER CALLER  [12\/14\/25 03:53:44 TSCOTT] [EMS] UNKNOWN INJURY  UNKNOWN HAZARDS - TRANSFERED TO THP  [12\/14\/25 03:53:38 TSCOTT] [EMS] SEMI TRUCK IN THE MEDIAN  [12\/14\/25 03:53:09 TSCOTT] [APCO INTELLICOMM] Case ID: Dz5UBEn-TG Caller Phone: 3306357442 Caller Name: AT&amp;T MOBILITY Incident Location: 304 W I 40 Incident Location Detail: (empty) Nature: MVC WITH INJURY Incident #: 20250137035 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/14\/25 03:53:03 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/14\/2025 03:53:01 TSCOTT]"
[2025-12-14 09:54:22] [INFO] Finished extracting fields. Total fields extracted: 18
[2025-12-14 09:54:22] [INFO] Built locationCoordinates from lat/lng: 36.10674,-85.23934
[2025-12-14 09:54:22] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2025003052\n2025019393","dispatchRunNumber":"2025003052\n2025019393","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":304,"streetName":"CROSSVILLE HWY","incidentLocationCity":"MONTEREY","incidentLocationStateName":"TN","businessName":"MM304W","nERISIncidentLatitude":36.10674,"nERISIncidentLongitude":-85.23934,"alarm":"2025-12-14 03:53:01","dispatched":"2025-12-14 03:54:10","cADVehicleID":"EN23","timedispatch":"2025-12-14 03:54:10","policeReportNumber":"20250137037\n20250137035\n20250137036\n20250137038","dispatchNotes":"[EMS] 304.2 PER CALLER  [12\/14\/25 03:53:44 TSCOTT] [EMS] UNKNOWN INJURY  UNKNOWN HAZARDS - TRANSFERED TO THP  [12\/14\/25 03:53:38 TSCOTT] [EMS] SEMI TRUCK IN THE MEDIAN  [12\/14\/25 03:53:09 TSCOTT] [APCO INTELLICOMM] Case ID: Dz5UBEn-TG Caller Phone: 3306357442 Caller Name: AT&amp;T MOBILITY Incident Location: 304 W I 40 Incident Location Detail: (empty) Nature: MVC WITH INJURY Incident #: 20250137035 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/14\/25 03:53:03 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/14\/2025 03:53:01 TSCOTT]","cADLog":"[EMS] 304.2 PER CALLER  [12\/14\/25 03:53:44 TSCOTT] [EMS] UNKNOWN INJURY  UNKNOWN HAZARDS - TRANSFERED TO THP  [12\/14\/25 03:53:38 TSCOTT] [EMS] SEMI TRUCK IN THE MEDIAN  [12\/14\/25 03:53:09 TSCOTT] [APCO INTELLICOMM] Case ID: Dz5UBEn-TG Caller Phone: 3306357442 Caller Name: AT&amp;T MOBILITY Incident Location: 304 W I 40 Incident Location Detail: (empty) Nature: MVC WITH INJURY Incident #: 20250137035 CAD Call Taker: TSCOTT Chief Complaint: (empty)  [12\/14\/25 03:53:03 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/14\/2025 03:53:01 TSCOTT]","locationCoordinates":"36.10674,-85.23934"}
[2025-12-14 09:54:22] [INFO] Number of extracted fields: 19
[2025-12-14 09:54:22] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2025-12-14 09:54:22] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
EMS
PCSO
RESC, Assigned Agencies count = 1
[2025-12-14 09:54:22] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
EMS
PCSO
RESC'
[2025-12-14 09:54:22] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2025-12-14 09:54:22] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 09:54:22] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 09:54:22] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2025-12-14 09:54:22] [INFO] Found existing Dispatch with cADNumber '2025003052
2025019393', ID: 693e894c558f23b2f - will update instead of create
[2025-12-14 09:54:22] [INFO] Updated existing Dispatches record with ID: 693e894c558f23b2f
[2025-12-14 09:54:22] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137037_20251214_095420_1.XML
[2025-12-14 09:54:22] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137037_20251214_095420_1.XML
[2025-12-14 10:45:30] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137041_20251214_104530.XML
[2025-12-14 10:45:30] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137041_20251214_104530.XML for user: 68f1466aed072ad4a
[2025-12-14 10:45:30] [INFO] File size: 4750 bytes
[2025-12-14 10:45:30] [INFO] Created FTPFiles record with ID: 693e954a37d162eb7
[2025-12-14 10:45:30] [INFO] About to extract fields from XML. File size: 4750 bytes
[2025-12-14 10:45:30] [INFO] Number of mappings: 26
[2025-12-14 10:45:30] [INFO] Starting XML parsing. Content length: 4750
[2025-12-14 10:45:30] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 10:45:30] [INFO] Processing 26 field mappings
[2025-12-14 10:45:30] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 10:45:30] [INFO]   -> Found value: PCFD
[2025-12-14 10:45:30] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2025-12-14 10:45:30] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 10:45:30] [INFO]   -> Found value: 2025003053
[2025-12-14 10:45:30] [INFO]   -> Set field 'incidentInternalId' = "2025003053"
[2025-12-14 10:45:30] [INFO]   -> Set field 'dispatchRunNumber' = "2025003053"
[2025-12-14 10:45:30] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 10:45:30] [INFO]   -> Found value: FIRE ALARM
[2025-12-14 10:45:30] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2025-12-14 10:45:30] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 10:45:30] [INFO]   -> Found value: 2401
[2025-12-14 10:45:30] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2401
[2025-12-14 10:45:30] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 10:45:30] [INFO]   -> Found value: DODSON BRANCH RD
[2025-12-14 10:45:30] [INFO]   -> Set field 'streetName' = "DODSON BRANCH RD"
[2025-12-14 10:45:30] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 10:45:30] [INFO]   -> Found value: COOKEVILLE
[2025-12-14 10:45:30] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-14 10:45:30] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 10:45:30] [INFO]   -> Found value: TN
[2025-12-14 10:45:30] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 10:45:30] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 10:45:30] [INFO]   -> Found value: 38501
[2025-12-14 10:45:30] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2025-12-14 10:45:30] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 10:45:30] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:30] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 10:45:30] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:30] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 10:45:30] [INFO]   -> Found value: 36.19685
[2025-12-14 10:45:30] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19685
[2025-12-14 10:45:30] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 10:45:30] [INFO]   -> Found value: -85.51122
[2025-12-14 10:45:30] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.51122
[2025-12-14 10:45:30] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 10:45:30] [INFO]   -> Found value: 2025-12-14 04:43:43
[2025-12-14 10:45:30] [INFO]   -> Set field 'alarm' = "2025-12-14 04:43:43"
[2025-12-14 10:45:30] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 10:45:30] [INFO]   -> Found value: 2025-12-14 04:45:24
[2025-12-14 10:45:30] [INFO]   -> Set field 'dispatched' = "2025-12-14 04:45:24"
[2025-12-14 10:45:30] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 10:45:30] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:30] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 10:45:30] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:30] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 10:45:30] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:30] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 10:45:30] [INFO]   -> Found value: N DIXIE AVE/KINNIARD RD
[2025-12-14 10:45:30] [INFO]   -> Set field 'incidentLocationCross' = "N DIXIE AVE\/KINNIARD RD"
[2025-12-14 10:45:30] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 10:45:30] [INFO]   -> Found value: TK16
[2025-12-14 10:45:30] [INFO]   -> Set field 'cADVehicleID' = "TK16"
[2025-12-14 10:45:30] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 10:45:30] [INFO]   -> Found value: 2025-12-14 04:45:24
[2025-12-14 10:45:30] [INFO]   -> Set field 'timedispatch' = "2025-12-14 04:45:24"
[2025-12-14 10:45:30] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 10:45:30] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:30] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 10:45:30] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:30] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 10:45:30] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:30] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 10:45:30] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:30] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 10:45:30] [INFO]   -> Found value: 20250137041
[2025-12-14 10:45:30] [INFO]   -> Set field 'policeReportNumber' = "20250137041"
[2025-12-14 10:45:30] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 10:45:30] [INFO]   -> Found value: BRENT GENTRY 931-261-2305  OR  931-528-6998  [12/14/25 04:45:07 BPICHE] BRYCE APARTMENTS  ZONE 1 SMO...
[2025-12-14 10:45:30] [INFO]   -> Set field 'dispatchNotes' = "BRENT GENTRY 931-261-2305  OR  931-528-6998  [12\/14\/25 04:45:07 BPICHE] BRYCE APARTMENTS  ZONE 1 SMOKE DECTOR ABOVE FIRE PANEL  [12\/14\/25 04:44:36 BPICHE]]"
[2025-12-14 10:45:30] [INFO]   -> Set field 'cADLog' = "BRENT GENTRY 931-261-2305  OR  931-528-6998  [12\/14\/25 04:45:07 BPICHE] BRYCE APARTMENTS  ZONE 1 SMOKE DECTOR ABOVE FIRE PANEL  [12\/14\/25 04:44:36 BPICHE]]"
[2025-12-14 10:45:30] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 10:45:30] [INFO] Built locationCoordinates from lat/lng: 36.19685,-85.51122
[2025-12-14 10:45:30] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2025003053","dispatchRunNumber":"2025003053","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":2401,"streetName":"DODSON BRANCH RD","incidentLocationCity":"COOKEVILLE","incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.19685,"nERISIncidentLongitude":-85.51122,"alarm":"2025-12-14 04:43:43","dispatched":"2025-12-14 04:45:24","incidentLocationCross":"N DIXIE AVE\/KINNIARD RD","cADVehicleID":"TK16","timedispatch":"2025-12-14 04:45:24","policeReportNumber":"20250137041","dispatchNotes":"BRENT GENTRY 931-261-2305  OR  931-528-6998  [12\/14\/25 04:45:07 BPICHE] BRYCE APARTMENTS  ZONE 1 SMOKE DECTOR ABOVE FIRE PANEL  [12\/14\/25 04:44:36 BPICHE]]","cADLog":"BRENT GENTRY 931-261-2305  OR  931-528-6998  [12\/14\/25 04:45:07 BPICHE] BRYCE APARTMENTS  ZONE 1 SMOKE DECTOR ABOVE FIRE PANEL  [12\/14\/25 04:44:36 BPICHE]]","locationCoordinates":"36.19685,-85.51122"}
[2025-12-14 10:45:30] [INFO] Number of extracted fields: 20
[2025-12-14 10:45:30] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2025-12-14 10:45:30] [INFO] Multi-agency routing check: CAD Agency ID = PCFD, Assigned Agencies count = 1
[2025-12-14 10:45:30] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD'
[2025-12-14 10:45:30] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department
[2025-12-14 10:45:30] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on CAD ID: 'PCFD'
[2025-12-14 10:45:30] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 10:45:30] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 10:45:30] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-14 10:45:30] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2025-12-14 10:45:31] [INFO] Created new Dispatches record with ID: 693e954a780edea52
[2025-12-14 10:45:31] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137041_20251214_104530.XML
[2025-12-14 10:45:31] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137041_20251214_104530.XML
[2025-12-14 10:45:31] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137041_20251214_104530_1.XML
[2025-12-14 10:45:31] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137041_20251214_104530_1.XML for user: 68f1466aed072ad4a
[2025-12-14 10:45:31] [INFO] File size: 4750 bytes
[2025-12-14 10:45:32] [INFO] Created FTPFiles record with ID: 693e954bf3c40337e
[2025-12-14 10:45:32] [INFO] About to extract fields from XML. File size: 4750 bytes
[2025-12-14 10:45:32] [INFO] Number of mappings: 26
[2025-12-14 10:45:32] [INFO] Starting XML parsing. Content length: 4750
[2025-12-14 10:45:32] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 10:45:32] [INFO] Processing 26 field mappings
[2025-12-14 10:45:32] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 10:45:32] [INFO]   -> Found value: PCFD
[2025-12-14 10:45:32] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2025-12-14 10:45:32] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 10:45:32] [INFO]   -> Found value: 2025003053
[2025-12-14 10:45:32] [INFO]   -> Set field 'incidentInternalId' = "2025003053"
[2025-12-14 10:45:32] [INFO]   -> Set field 'dispatchRunNumber' = "2025003053"
[2025-12-14 10:45:32] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 10:45:32] [INFO]   -> Found value: FIRE ALARM
[2025-12-14 10:45:32] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2025-12-14 10:45:32] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 10:45:32] [INFO]   -> Found value: 2401
[2025-12-14 10:45:32] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2401
[2025-12-14 10:45:32] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 10:45:32] [INFO]   -> Found value: DODSON BRANCH RD
[2025-12-14 10:45:32] [INFO]   -> Set field 'streetName' = "DODSON BRANCH RD"
[2025-12-14 10:45:32] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 10:45:32] [INFO]   -> Found value: COOKEVILLE
[2025-12-14 10:45:32] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-14 10:45:32] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 10:45:32] [INFO]   -> Found value: TN
[2025-12-14 10:45:32] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 10:45:32] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 10:45:32] [INFO]   -> Found value: 38501
[2025-12-14 10:45:32] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2025-12-14 10:45:32] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 10:45:32] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:32] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 10:45:32] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:32] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 10:45:32] [INFO]   -> Found value: 36.19685
[2025-12-14 10:45:32] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19685
[2025-12-14 10:45:32] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 10:45:32] [INFO]   -> Found value: -85.51122
[2025-12-14 10:45:32] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.51122
[2025-12-14 10:45:32] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 10:45:32] [INFO]   -> Found value: 2025-12-14 04:43:43
[2025-12-14 10:45:32] [INFO]   -> Set field 'alarm' = "2025-12-14 04:43:43"
[2025-12-14 10:45:32] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 10:45:32] [INFO]   -> Found value: 2025-12-14 04:45:24
[2025-12-14 10:45:32] [INFO]   -> Set field 'dispatched' = "2025-12-14 04:45:24"
[2025-12-14 10:45:32] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 10:45:32] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:32] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 10:45:32] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:32] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 10:45:32] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:32] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 10:45:32] [INFO]   -> Found value: N DIXIE AVE/KINNIARD RD
[2025-12-14 10:45:32] [INFO]   -> Set field 'incidentLocationCross' = "N DIXIE AVE\/KINNIARD RD"
[2025-12-14 10:45:32] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 10:45:32] [INFO]   -> Found value: TK16
[2025-12-14 10:45:32] [INFO]   -> Set field 'cADVehicleID' = "TK16"
[2025-12-14 10:45:32] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 10:45:32] [INFO]   -> Found value: 2025-12-14 04:45:24
[2025-12-14 10:45:32] [INFO]   -> Set field 'timedispatch' = "2025-12-14 04:45:24"
[2025-12-14 10:45:32] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 10:45:32] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:32] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 10:45:32] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:32] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 10:45:32] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:32] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 10:45:32] [INFO]   -> No value found (null or empty)
[2025-12-14 10:45:32] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 10:45:32] [INFO]   -> Found value: 20250137041
[2025-12-14 10:45:32] [INFO]   -> Set field 'policeReportNumber' = "20250137041"
[2025-12-14 10:45:32] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 10:45:32] [INFO]   -> Found value: BRENT GENTRY 931-261-2305  OR  931-528-6998  [12/14/25 04:45:07 BPICHE] BRYCE APARTMENTS  ZONE 1 SMO...
[2025-12-14 10:45:32] [INFO]   -> Set field 'dispatchNotes' = "BRENT GENTRY 931-261-2305  OR  931-528-6998  [12\/14\/25 04:45:07 BPICHE] BRYCE APARTMENTS  ZONE 1 SMOKE DECTOR ABOVE FIRE PANEL  [12\/14\/25 04:44:36 BPICHE]]"
[2025-12-14 10:45:32] [INFO]   -> Set field 'cADLog' = "BRENT GENTRY 931-261-2305  OR  931-528-6998  [12\/14\/25 04:45:07 BPICHE] BRYCE APARTMENTS  ZONE 1 SMOKE DECTOR ABOVE FIRE PANEL  [12\/14\/25 04:44:36 BPICHE]]"
[2025-12-14 10:45:32] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 10:45:32] [INFO] Built locationCoordinates from lat/lng: 36.19685,-85.51122
[2025-12-14 10:45:32] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2025003053","dispatchRunNumber":"2025003053","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":2401,"streetName":"DODSON BRANCH RD","incidentLocationCity":"COOKEVILLE","incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.19685,"nERISIncidentLongitude":-85.51122,"alarm":"2025-12-14 04:43:43","dispatched":"2025-12-14 04:45:24","incidentLocationCross":"N DIXIE AVE\/KINNIARD RD","cADVehicleID":"TK16","timedispatch":"2025-12-14 04:45:24","policeReportNumber":"20250137041","dispatchNotes":"BRENT GENTRY 931-261-2305  OR  931-528-6998  [12\/14\/25 04:45:07 BPICHE] BRYCE APARTMENTS  ZONE 1 SMOKE DECTOR ABOVE FIRE PANEL  [12\/14\/25 04:44:36 BPICHE]]","cADLog":"BRENT GENTRY 931-261-2305  OR  931-528-6998  [12\/14\/25 04:45:07 BPICHE] BRYCE APARTMENTS  ZONE 1 SMOKE DECTOR ABOVE FIRE PANEL  [12\/14\/25 04:44:36 BPICHE]]","locationCoordinates":"36.19685,-85.51122"}
[2025-12-14 10:45:32] [INFO] Number of extracted fields: 20
[2025-12-14 10:45:32] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2025-12-14 10:45:32] [INFO] Multi-agency routing check: CAD Agency ID = PCFD, Assigned Agencies count = 1
[2025-12-14 10:45:32] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD'
[2025-12-14 10:45:32] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department
[2025-12-14 10:45:32] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on CAD ID: 'PCFD'
[2025-12-14 10:45:32] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 10:45:32] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 10:45:32] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-14 10:45:32] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2025-12-14 10:45:32] [INFO] Found existing Dispatch with cADNumber '2025003053', ID: 693e954a780edea52 - will update instead of create
[2025-12-14 10:45:32] [INFO] Updated existing Dispatches record with ID: 693e954a780edea52
[2025-12-14 10:45:32] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137041_20251214_104530_1.XML
[2025-12-14 10:45:32] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137041_20251214_104530_1.XML
[2025-12-14 15:45:20] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137075_20251214_154520.XML
[2025-12-14 15:45:20] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137075_20251214_154520.XML for user: 68f1466aed072ad4a
[2025-12-14 15:45:20] [INFO] File size: 4617 bytes
[2025-12-14 15:45:20] [INFO] Created FTPFiles record with ID: 693edb909d31472b0
[2025-12-14 15:45:20] [INFO] About to extract fields from XML. File size: 4617 bytes
[2025-12-14 15:45:20] [INFO] Number of mappings: 26
[2025-12-14 15:45:20] [INFO] Starting XML parsing. Content length: 4617
[2025-12-14 15:45:20] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 15:45:20] [INFO] Processing 26 field mappings
[2025-12-14 15:45:20] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 15:45:20] [INFO]   -> Found value: PCFD
[2025-12-14 15:45:20] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2025-12-14 15:45:20] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 15:45:20] [INFO]   -> Found value: 2025003054
[2025-12-14 15:45:20] [INFO]   -> Set field 'incidentInternalId' = "2025003054"
[2025-12-14 15:45:20] [INFO]   -> Set field 'dispatchRunNumber' = "2025003054"
[2025-12-14 15:45:20] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 15:45:20] [INFO]   -> Found value: FIRE ALARM
[2025-12-14 15:45:20] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2025-12-14 15:45:20] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 15:45:20] [INFO]   -> Found value: 5249
[2025-12-14 15:45:20] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5249
[2025-12-14 15:45:20] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 15:45:20] [INFO]   -> Found value: WATSON RD
[2025-12-14 15:45:20] [INFO]   -> Set field 'streetName' = "WATSON RD"
[2025-12-14 15:45:20] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 15:45:20] [INFO]   -> Found value: COOKEVILLE
[2025-12-14 15:45:20] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-14 15:45:20] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 15:45:20] [INFO]   -> Found value: TN
[2025-12-14 15:45:20] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 15:45:20] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 15:45:20] [INFO]   -> Found value: 38506
[2025-12-14 15:45:20] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-14 15:45:20] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 15:45:20] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:20] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 15:45:20] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:20] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 15:45:20] [INFO]   -> Found value: 36.11670
[2025-12-14 15:45:20] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1167
[2025-12-14 15:45:20] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 15:45:20] [INFO]   -> Found value: -85.43140
[2025-12-14 15:45:20] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4314
[2025-12-14 15:45:20] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 15:45:20] [INFO]   -> Found value: 2025-12-14 09:43:22
[2025-12-14 15:45:20] [INFO]   -> Set field 'alarm' = "2025-12-14 09:43:22"
[2025-12-14 15:45:20] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 15:45:20] [INFO]   -> Found value: 2025-12-14 09:45:18
[2025-12-14 15:45:20] [INFO]   -> Set field 'dispatched' = "2025-12-14 09:45:18"
[2025-12-14 15:45:20] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 15:45:20] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:20] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 15:45:20] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:20] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 15:45:20] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:20] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 15:45:20] [INFO]   -> Found value: /BARTLETT DR
[2025-12-14 15:45:20] [INFO]   -> Set field 'incidentLocationCross' = "\/BARTLETT DR"
[2025-12-14 15:45:20] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 15:45:20] [INFO]   -> Found value: TK15
[2025-12-14 15:45:20] [INFO]   -> Set field 'cADVehicleID' = "TK15"
[2025-12-14 15:45:20] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 15:45:20] [INFO]   -> Found value: 2025-12-14 09:45:18
[2025-12-14 15:45:20] [INFO]   -> Set field 'timedispatch' = "2025-12-14 09:45:18"
[2025-12-14 15:45:20] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 15:45:20] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:20] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 15:45:20] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:20] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 15:45:20] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:20] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 15:45:20] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:20] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 15:45:20] [INFO]   -> Found value: 20250137075
[2025-12-14 15:45:20] [INFO]   -> Set field 'policeReportNumber' = "20250137075"
[2025-12-14 15:45:20] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 15:45:20] [INFO]   -> Found value: 205-532-2160//BRIANNA ROBINS  [12/14/25 09:44:41 KMORGAN2]
[2025-12-14 15:45:20] [INFO]   -> Set field 'dispatchNotes' = "205-532-2160\/\/BRIANNA ROBINS  [12\/14\/25 09:44:41 KMORGAN2]"
[2025-12-14 15:45:20] [INFO]   -> Set field 'cADLog' = "205-532-2160\/\/BRIANNA ROBINS  [12\/14\/25 09:44:41 KMORGAN2]"
[2025-12-14 15:45:20] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 15:45:20] [INFO] Built locationCoordinates from lat/lng: 36.1167,-85.4314
[2025-12-14 15:45:20] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2025003054","dispatchRunNumber":"2025003054","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":5249,"streetName":"WATSON RD","incidentLocationCity":"COOKEVILLE","incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1167,"nERISIncidentLongitude":-85.4314,"alarm":"2025-12-14 09:43:22","dispatched":"2025-12-14 09:45:18","incidentLocationCross":"\/BARTLETT DR","cADVehicleID":"TK15","timedispatch":"2025-12-14 09:45:18","policeReportNumber":"20250137075","dispatchNotes":"205-532-2160\/\/BRIANNA ROBINS  [12\/14\/25 09:44:41 KMORGAN2]","cADLog":"205-532-2160\/\/BRIANNA ROBINS  [12\/14\/25 09:44:41 KMORGAN2]","locationCoordinates":"36.1167,-85.4314"}
[2025-12-14 15:45:20] [INFO] Number of extracted fields: 20
[2025-12-14 15:45:20] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2025-12-14 15:45:20] [INFO] Multi-agency routing check: CAD Agency ID = PCFD, Assigned Agencies count = 1
[2025-12-14 15:45:20] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD'
[2025-12-14 15:45:20] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department
[2025-12-14 15:45:20] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on CAD ID: 'PCFD'
[2025-12-14 15:45:20] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 15:45:20] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 15:45:20] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-14 15:45:20] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2025-12-14 15:45:22] [INFO] Created new Dispatches record with ID: 693edb90e0b902a88
[2025-12-14 15:45:22] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137075_20251214_154520.XML
[2025-12-14 15:45:22] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137075_20251214_154520.XML
[2025-12-14 15:45:22] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137075_20251214_154520_1.XML
[2025-12-14 15:45:22] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137075_20251214_154520_1.XML for user: 68f1466aed072ad4a
[2025-12-14 15:45:22] [INFO] File size: 4617 bytes
[2025-12-14 15:45:22] [INFO] Created FTPFiles record with ID: 693edb925eea19717
[2025-12-14 15:45:22] [INFO] About to extract fields from XML. File size: 4617 bytes
[2025-12-14 15:45:22] [INFO] Number of mappings: 26
[2025-12-14 15:45:22] [INFO] Starting XML parsing. Content length: 4617
[2025-12-14 15:45:22] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 15:45:22] [INFO] Processing 26 field mappings
[2025-12-14 15:45:22] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 15:45:22] [INFO]   -> Found value: PCFD
[2025-12-14 15:45:22] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2025-12-14 15:45:22] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 15:45:22] [INFO]   -> Found value: 2025003054
[2025-12-14 15:45:22] [INFO]   -> Set field 'incidentInternalId' = "2025003054"
[2025-12-14 15:45:22] [INFO]   -> Set field 'dispatchRunNumber' = "2025003054"
[2025-12-14 15:45:22] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 15:45:22] [INFO]   -> Found value: FIRE ALARM
[2025-12-14 15:45:22] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2025-12-14 15:45:22] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 15:45:22] [INFO]   -> Found value: 5249
[2025-12-14 15:45:22] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5249
[2025-12-14 15:45:22] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 15:45:22] [INFO]   -> Found value: WATSON RD
[2025-12-14 15:45:22] [INFO]   -> Set field 'streetName' = "WATSON RD"
[2025-12-14 15:45:22] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 15:45:22] [INFO]   -> Found value: COOKEVILLE
[2025-12-14 15:45:22] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-14 15:45:22] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 15:45:22] [INFO]   -> Found value: TN
[2025-12-14 15:45:22] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 15:45:22] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 15:45:22] [INFO]   -> Found value: 38506
[2025-12-14 15:45:22] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-14 15:45:22] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 15:45:22] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:22] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 15:45:22] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:22] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 15:45:22] [INFO]   -> Found value: 36.11670
[2025-12-14 15:45:22] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1167
[2025-12-14 15:45:22] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 15:45:22] [INFO]   -> Found value: -85.43140
[2025-12-14 15:45:22] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4314
[2025-12-14 15:45:22] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 15:45:22] [INFO]   -> Found value: 2025-12-14 09:43:22
[2025-12-14 15:45:22] [INFO]   -> Set field 'alarm' = "2025-12-14 09:43:22"
[2025-12-14 15:45:22] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 15:45:22] [INFO]   -> Found value: 2025-12-14 09:45:18
[2025-12-14 15:45:22] [INFO]   -> Set field 'dispatched' = "2025-12-14 09:45:18"
[2025-12-14 15:45:22] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 15:45:22] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:22] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 15:45:22] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:22] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 15:45:22] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:22] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 15:45:22] [INFO]   -> Found value: /BARTLETT DR
[2025-12-14 15:45:22] [INFO]   -> Set field 'incidentLocationCross' = "\/BARTLETT DR"
[2025-12-14 15:45:22] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 15:45:22] [INFO]   -> Found value: TK15
[2025-12-14 15:45:22] [INFO]   -> Set field 'cADVehicleID' = "TK15"
[2025-12-14 15:45:22] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 15:45:22] [INFO]   -> Found value: 2025-12-14 09:45:18
[2025-12-14 15:45:22] [INFO]   -> Set field 'timedispatch' = "2025-12-14 09:45:18"
[2025-12-14 15:45:22] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 15:45:22] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:22] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 15:45:22] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:22] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 15:45:22] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:22] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 15:45:22] [INFO]   -> No value found (null or empty)
[2025-12-14 15:45:22] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 15:45:22] [INFO]   -> Found value: 20250137075
[2025-12-14 15:45:22] [INFO]   -> Set field 'policeReportNumber' = "20250137075"
[2025-12-14 15:45:22] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 15:45:22] [INFO]   -> Found value: 205-532-2160//BRIANNA ROBINS  [12/14/25 09:44:41 KMORGAN2]
[2025-12-14 15:45:22] [INFO]   -> Set field 'dispatchNotes' = "205-532-2160\/\/BRIANNA ROBINS  [12\/14\/25 09:44:41 KMORGAN2]"
[2025-12-14 15:45:22] [INFO]   -> Set field 'cADLog' = "205-532-2160\/\/BRIANNA ROBINS  [12\/14\/25 09:44:41 KMORGAN2]"
[2025-12-14 15:45:22] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 15:45:22] [INFO] Built locationCoordinates from lat/lng: 36.1167,-85.4314
[2025-12-14 15:45:22] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2025003054","dispatchRunNumber":"2025003054","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":5249,"streetName":"WATSON RD","incidentLocationCity":"COOKEVILLE","incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1167,"nERISIncidentLongitude":-85.4314,"alarm":"2025-12-14 09:43:22","dispatched":"2025-12-14 09:45:18","incidentLocationCross":"\/BARTLETT DR","cADVehicleID":"TK15","timedispatch":"2025-12-14 09:45:18","policeReportNumber":"20250137075","dispatchNotes":"205-532-2160\/\/BRIANNA ROBINS  [12\/14\/25 09:44:41 KMORGAN2]","cADLog":"205-532-2160\/\/BRIANNA ROBINS  [12\/14\/25 09:44:41 KMORGAN2]","locationCoordinates":"36.1167,-85.4314"}
[2025-12-14 15:45:22] [INFO] Number of extracted fields: 20
[2025-12-14 15:45:22] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2025-12-14 15:45:22] [INFO] Multi-agency routing check: CAD Agency ID = PCFD, Assigned Agencies count = 1
[2025-12-14 15:45:22] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD'
[2025-12-14 15:45:22] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department
[2025-12-14 15:45:22] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on CAD ID: 'PCFD'
[2025-12-14 15:45:22] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 15:45:22] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 15:45:22] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-14 15:45:22] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2025-12-14 15:45:22] [INFO] Found existing Dispatch with cADNumber '2025003054', ID: 693edb90e0b902a88 - will update instead of create
[2025-12-14 15:45:22] [INFO] Updated existing Dispatches record with ID: 693edb90e0b902a88
[2025-12-14 15:45:22] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137075_20251214_154520_1.XML
[2025-12-14 15:45:22] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137075_20251214_154520_1.XML
[2025-12-14 15:59:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29703.xml
[2025-12-14 15:59:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29703.xml for user: 68d56363ec1209189
[2025-12-14 15:59:51] [INFO] File size: 1989 bytes
[2025-12-14 15:59:51] [INFO] Created FTPFiles record with ID: 693edef756ee82b87
[2025-12-14 15:59:51] [INFO] About to extract fields from XML. File size: 1989 bytes
[2025-12-14 15:59:51] [INFO] Number of mappings: 21
[2025-12-14 15:59:51] [INFO] Starting XML parsing. Content length: 1989
[2025-12-14 15:59:51] [INFO] XML parsed successfully. Root element: Incident
[2025-12-14 15:59:51] [INFO] Processing 21 field mappings
[2025-12-14 15:59:51] [INFO] Mapping #1: Extracting 'IncidentNumber' => 'dispatchRunNumber'
[2025-12-14 15:59:51] [INFO]   -> Found value: 25-29703
[2025-12-14 15:59:51] [INFO]   -> Set field 'dispatchRunNumber' = "25-29703"
[2025-12-14 15:59:51] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-14 15:59:51] [INFO]   -> Found value: 364
[2025-12-14 15:59:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 364
[2025-12-14 15:59:51] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-14 15:59:51] [INFO]   -> Found value: S DEAL ST
[2025-12-14 15:59:51] [INFO]   -> Set field 'streetName' = "S DEAL ST"
[2025-12-14 15:59:51] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-14 15:59:51] [INFO]   -> No value found (null or empty)
[2025-12-14 15:59:51] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-14 15:59:51] [INFO]   -> Found value: DIEHLSTADT
[2025-12-14 15:59:51] [INFO]   -> Set field 'incidentLocationCity' = "DIEHLSTADT"
[2025-12-14 15:59:51] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-14 15:59:51] [INFO]   -> No value found (null or empty)
[2025-12-14 15:59:51] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-14 15:59:51] [INFO]   -> No value found (null or empty)
[2025-12-14 15:59:51] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-14 15:59:51] [INFO]   -> No value found (null or empty)
[2025-12-14 15:59:51] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-14 15:59:51] [INFO]   -> Found value: 0
[2025-12-14 15:59:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-14 15:59:51] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-14 15:59:51] [INFO]   -> Found value: 0
[2025-12-14 15:59:51] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-14 15:59:51] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-14 15:59:51] [INFO]   -> Found value: DEATH-UNATTENDED
[2025-12-14 15:59:51] [INFO]   -> Set field 'incidentTypeValue1' = "DEATH-UNATTENDED"
[2025-12-14 15:59:51] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-14 15:59:51] [INFO]   -> Found value: 12-14-2025 08:14:54|DIELSTADT
78 YR OLD FM FELL, LEGS WEEK
MALE POSSIBLY J4 80, NOT BREATHING, BODY ...
[2025-12-14 15:59:51] [INFO]   -> Set field 'dispatchNotes' = "12-14-2025 08:14:54|DIELSTADT\n78 YR OLD FM FELL, LEGS WEEK\nMALE POSSIBLY J4 80, NOT BREATHING, BODY STIFF 12-14-2025 08:29:09|PER 346 CONTACT 341C 12-14-2025 08:31:55|NOTIFIED 341C, ENROUTE 12-14-2025 08:35:49|MCMIKLE NOTIFIED 12-14-2025 08:39:27|CORONER TURNED CUSTODY OF THE BODY OVER TO MCMIKLE 12-14-2025 09:23:40|MCMIKLE ON SCENE 12-14-2025 09:58:37|Disposition - Scott County S.O. (MO):  RPT"
[2025-12-14 15:59:51] [INFO]   -> Set field 'cADLog' = "12-14-2025 08:14:54|DIELSTADT\n78 YR OLD FM FELL, LEGS WEEK\nMALE POSSIBLY J4 80, NOT BREATHING, BODY STIFF 12-14-2025 08:29:09|PER 346 CONTACT 341C 12-14-2025 08:31:55|NOTIFIED 341C, ENROUTE 12-14-2025 08:35:49|MCMIKLE NOTIFIED 12-14-2025 08:39:27|CORONER TURNED CUSTODY OF THE BODY OVER TO MCMIKLE 12-14-2025 09:23:40|MCMIKLE ON SCENE 12-14-2025 09:58:37|Disposition - Scott County S.O. (MO):  RPT"
[2025-12-14 15:59:51] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-14 15:59:51] [INFO]   -> Found value: 12-14-2025T08:18:18
[2025-12-14 15:59:51] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:18:18
[2025-12-14 15:59:51] [ERROR] Error formatting datetime '2025-14-12T08:18:18': Failed to parse time string (2025-14-12T08:18:18) at position 6 (4): Unexpected character
[2025-12-14 15:59:51] [INFO]   -> Set field 'alarm' = null
[2025-12-14 15:59:51] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:18:18
[2025-12-14 15:59:51] [ERROR] Error formatting datetime '2025-14-12T08:18:18': Failed to parse time string (2025-14-12T08:18:18) at position 6 (4): Unexpected character
[2025-12-14 15:59:51] [INFO]   -> Set field 'dispatched' = null
[2025-12-14 15:59:51] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-14 15:59:51] [INFO]   -> Found value: 12-14-2025T08:26:31
[2025-12-14 15:59:51] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:26:31
[2025-12-14 15:59:51] [ERROR] Error formatting datetime '2025-14-12T08:26:31': Failed to parse time string (2025-14-12T08:26:31) at position 6 (4): Unexpected character
[2025-12-14 15:59:51] [INFO]   -> Set field 'onScene' = null
[2025-12-14 15:59:51] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-14 15:59:51] [INFO]   -> No value found (null or empty)
[2025-12-14 15:59:51] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-14 15:59:51] [INFO]   -> Found value: 1701
[2025-12-14 15:59:51] [INFO]   -> Set field 'cADVehicleID' = 1701
[2025-12-14 15:59:51] [INFO]   -> Set field 'name' = "1701"
[2025-12-14 15:59:51] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-14 15:59:51] [INFO]   -> Found value: 12-14-2025T08:19:14
[2025-12-14 15:59:51] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:19:14
[2025-12-14 15:59:51] [ERROR] Error formatting datetime '2025-14-12T08:19:14': Failed to parse time string (2025-14-12T08:19:14) at position 6 (4): Unexpected character
[2025-12-14 15:59:51] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-14 15:59:51] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-14 15:59:51] [INFO]   -> Found value: 12-14-2025T08:26:31
[2025-12-14 15:59:51] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:26:31
[2025-12-14 15:59:51] [ERROR] Error formatting datetime '2025-14-12T08:26:31': Failed to parse time string (2025-14-12T08:26:31) at position 6 (4): Unexpected character
[2025-12-14 15:59:51] [INFO]   -> Set field 'timeonscene' = null
[2025-12-14 15:59:51] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-14 15:59:51] [INFO]   -> Found value: 12-14-2025T09:58:33
[2025-12-14 15:59:51] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T09:58:33
[2025-12-14 15:59:51] [ERROR] Error formatting datetime '2025-14-12T09:58:33': Failed to parse time string (2025-14-12T09:58:33) at position 6 (4): Unexpected character
[2025-12-14 15:59:51] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-14 15:59:51] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-14 15:59:51] [INFO]   -> Found value: 12-14-2025T08:19:12
[2025-12-14 15:59:51] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:19:12
[2025-12-14 15:59:51] [ERROR] Error formatting datetime '2025-14-12T08:19:12': Failed to parse time string (2025-14-12T08:19:12) at position 6 (4): Unexpected character
[2025-12-14 15:59:51] [INFO]   -> Set field 'timedispatch' = null
[2025-12-14 15:59:51] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-14 15:59:51] [INFO]   -> Found value: SCRFD
[2025-12-14 15:59:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2025-12-14 15:59:51] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 15:59:51] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-14 15:59:51] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-29703","incidentLocationStreetNumber":364,"streetName":"S DEAL ST","incidentLocationCity":"DIEHLSTADT","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"DEATH-UNATTENDED","dispatchNotes":"12-14-2025 08:14:54|DIELSTADT\n78 YR OLD FM FELL, LEGS WEEK\nMALE POSSIBLY J4 80, NOT BREATHING, BODY STIFF 12-14-2025 08:29:09|PER 346 CONTACT 341C 12-14-2025 08:31:55|NOTIFIED 341C, ENROUTE 12-14-2025 08:35:49|MCMIKLE NOTIFIED 12-14-2025 08:39:27|CORONER TURNED CUSTODY OF THE BODY OVER TO MCMIKLE 12-14-2025 09:23:40|MCMIKLE ON SCENE 12-14-2025 09:58:37|Disposition - Scott County S.O. (MO):  RPT","cADLog":"12-14-2025 08:14:54|DIELSTADT\n78 YR OLD FM FELL, LEGS WEEK\nMALE POSSIBLY J4 80, NOT BREATHING, BODY STIFF 12-14-2025 08:29:09|PER 346 CONTACT 341C 12-14-2025 08:31:55|NOTIFIED 341C, ENROUTE 12-14-2025 08:35:49|MCMIKLE NOTIFIED 12-14-2025 08:39:27|CORONER TURNED CUSTODY OF THE BODY OVER TO MCMIKLE 12-14-2025 09:23:40|MCMIKLE ON SCENE 12-14-2025 09:58:37|Disposition - Scott County S.O. (MO):  RPT","alarm":null,"dispatched":null,"onScene":null,"cADVehicleID":1701,"name":"1701","timeenroutetoscene":null,"timeonscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2025-12-14 15:59:51] [INFO] Number of extracted fields: 20
[2025-12-14 15:59:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2025-12-14 15:59:51] [INFO] Multi-agency routing check: CAD Agency ID = SCRFD, Assigned Agencies count = 2
[2025-12-14 15:59:51] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'SCRFD'
[2025-12-14 15:59:51] [INFO] Found SAASClient match: ID = 6643bdb30659f00d8, Name = Scott County Rural Fire Protection District
[2025-12-14 15:59:51] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) based on CAD ID: 'SCRFD'
[2025-12-14 15:59:51] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-14 15:59:51] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-14 15:59:51] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2025-12-14 15:59:51] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"DEATH-UNATTENDED","saasclientId":"6643bdb30659f00d8","name":"DEATH-UNATTENDED"}
[2025-12-14 15:59:51] [INFO] Created new IncidentTypeMapping with ID: 693edef794e1e3e45
[2025-12-14 15:59:52] [INFO] Found existing Dispatch with cADNumber '25-29703', ID: 693ec74bc420cf59b - will update instead of create
[2025-12-14 15:59:54] [INFO] Updated existing Dispatches record with ID: 693ec74bc420cf59b
[2025-12-14 15:59:54] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29703.xml
[2025-12-14 15:59:54] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29703.xml
[2025-12-14 16:01:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29703.xml
[2025-12-14 16:01:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29703.xml for user: 68d56363ec1209189
[2025-12-14 16:01:52] [INFO] File size: 2187 bytes
[2025-12-14 16:01:52] [INFO] Created FTPFiles record with ID: 693edf7088b1f5e4b
[2025-12-14 16:01:52] [INFO] About to extract fields from XML. File size: 2187 bytes
[2025-12-14 16:01:52] [INFO] Number of mappings: 21
[2025-12-14 16:01:52] [INFO] Starting XML parsing. Content length: 2187
[2025-12-14 16:01:52] [INFO] XML parsed successfully. Root element: Incident
[2025-12-14 16:01:52] [INFO] Processing 21 field mappings
[2025-12-14 16:01:52] [INFO] Mapping #1: Extracting 'IncidentNumber' => 'dispatchRunNumber'
[2025-12-14 16:01:52] [INFO]   -> Found value: 25-29703
[2025-12-14 16:01:52] [INFO]   -> Set field 'dispatchRunNumber' = "25-29703"
[2025-12-14 16:01:52] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-14 16:01:52] [INFO]   -> Found value: 364
[2025-12-14 16:01:52] [INFO]   -> Set field 'incidentLocationStreetNumber' = 364
[2025-12-14 16:01:52] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-14 16:01:52] [INFO]   -> Found value: S DEAL ST
[2025-12-14 16:01:52] [INFO]   -> Set field 'streetName' = "S DEAL ST"
[2025-12-14 16:01:52] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-14 16:01:52] [INFO]   -> No value found (null or empty)
[2025-12-14 16:01:52] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-14 16:01:52] [INFO]   -> Found value: DIEHLSTADT
[2025-12-14 16:01:52] [INFO]   -> Set field 'incidentLocationCity' = "DIEHLSTADT"
[2025-12-14 16:01:52] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-14 16:01:52] [INFO]   -> No value found (null or empty)
[2025-12-14 16:01:52] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-14 16:01:52] [INFO]   -> No value found (null or empty)
[2025-12-14 16:01:52] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-14 16:01:52] [INFO]   -> No value found (null or empty)
[2025-12-14 16:01:52] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-14 16:01:52] [INFO]   -> Found value: 0
[2025-12-14 16:01:52] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-14 16:01:52] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-14 16:01:52] [INFO]   -> Found value: 0
[2025-12-14 16:01:52] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-14 16:01:52] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-14 16:01:52] [INFO]   -> Found value: DEATH-UNATTENDED
[2025-12-14 16:01:52] [INFO]   -> Set field 'incidentTypeValue1' = "DEATH-UNATTENDED"
[2025-12-14 16:01:52] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-14 16:01:52] [INFO]   -> Found value: 12-14-2025 08:14:54|DIELSTADT
78 YR OLD FM FELL, LEGS WEEK
MALE POSSIBLY J4 80, NOT BREATHING, BODY ...
[2025-12-14 16:01:52] [INFO]   -> Set field 'dispatchNotes' = "12-14-2025 08:14:54|DIELSTADT\n78 YR OLD FM FELL, LEGS WEEK\nMALE POSSIBLY J4 80, NOT BREATHING, BODY STIFF 12-14-2025 08:29:09|PER 346 CONTACT 341C 12-14-2025 08:31:55|NOTIFIED 341C, ENROUTE 12-14-2025 08:35:49|MCMIKLE NOTIFIED 12-14-2025 08:39:27|CORONER TURNED CUSTODY OF THE BODY OVER TO MCMIKLE 12-14-2025 09:23:40|MCMIKLE ON SCENE 12-14-2025 09:58:37|Disposition - Scott County S.O. (MO):  RPT 12-14-2025 09:58:51|Disposition - Scott County Rural:  RPT\nDisposition - Scott County S.O. (MO):  RPT 12-14-2025 09:59:38|Disposition - SSCA:  RPT\nDisposition - SSCA UNIT:  NRN"
[2025-12-14 16:01:52] [INFO]   -> Set field 'cADLog' = "12-14-2025 08:14:54|DIELSTADT\n78 YR OLD FM FELL, LEGS WEEK\nMALE POSSIBLY J4 80, NOT BREATHING, BODY STIFF 12-14-2025 08:29:09|PER 346 CONTACT 341C 12-14-2025 08:31:55|NOTIFIED 341C, ENROUTE 12-14-2025 08:35:49|MCMIKLE NOTIFIED 12-14-2025 08:39:27|CORONER TURNED CUSTODY OF THE BODY OVER TO MCMIKLE 12-14-2025 09:23:40|MCMIKLE ON SCENE 12-14-2025 09:58:37|Disposition - Scott County S.O. (MO):  RPT 12-14-2025 09:58:51|Disposition - Scott County Rural:  RPT\nDisposition - Scott County S.O. (MO):  RPT 12-14-2025 09:59:38|Disposition - SSCA:  RPT\nDisposition - SSCA UNIT:  NRN"
[2025-12-14 16:01:52] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-14 16:01:52] [INFO]   -> Found value: 12-14-2025T08:18:18
[2025-12-14 16:01:52] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:18:18
[2025-12-14 16:01:52] [ERROR] Error formatting datetime '2025-14-12T08:18:18': Failed to parse time string (2025-14-12T08:18:18) at position 6 (4): Unexpected character
[2025-12-14 16:01:52] [INFO]   -> Set field 'alarm' = null
[2025-12-14 16:01:52] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:18:18
[2025-12-14 16:01:52] [ERROR] Error formatting datetime '2025-14-12T08:18:18': Failed to parse time string (2025-14-12T08:18:18) at position 6 (4): Unexpected character
[2025-12-14 16:01:52] [INFO]   -> Set field 'dispatched' = null
[2025-12-14 16:01:52] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-14 16:01:52] [INFO]   -> Found value: 12-14-2025T08:26:31
[2025-12-14 16:01:52] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:26:31
[2025-12-14 16:01:52] [ERROR] Error formatting datetime '2025-14-12T08:26:31': Failed to parse time string (2025-14-12T08:26:31) at position 6 (4): Unexpected character
[2025-12-14 16:01:52] [INFO]   -> Set field 'onScene' = null
[2025-12-14 16:01:52] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-14 16:01:52] [INFO]   -> Found value: 12-14-2025T09:59:24
[2025-12-14 16:01:52] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T09:59:24
[2025-12-14 16:01:52] [ERROR] Error formatting datetime '2025-14-12T09:59:24': Failed to parse time string (2025-14-12T09:59:24) at position 6 (4): Unexpected character
[2025-12-14 16:01:52] [INFO]   -> Set field 'cleared' = null
[2025-12-14 16:01:52] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T09:59:24
[2025-12-14 16:01:52] [ERROR] Error formatting datetime '2025-14-12T09:59:24': Failed to parse time string (2025-14-12T09:59:24) at position 6 (4): Unexpected character
[2025-12-14 16:01:52] [INFO]   -> Set field 'inService' = null
[2025-12-14 16:01:52] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-14 16:01:52] [INFO]   -> Found value: 1701
[2025-12-14 16:01:52] [INFO]   -> Set field 'cADVehicleID' = 1701
[2025-12-14 16:01:52] [INFO]   -> Set field 'name' = "1701"
[2025-12-14 16:01:52] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-14 16:01:52] [INFO]   -> Found value: 12-14-2025T08:19:14
[2025-12-14 16:01:52] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:19:14
[2025-12-14 16:01:52] [ERROR] Error formatting datetime '2025-14-12T08:19:14': Failed to parse time string (2025-14-12T08:19:14) at position 6 (4): Unexpected character
[2025-12-14 16:01:52] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-14 16:01:52] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-14 16:01:52] [INFO]   -> Found value: 12-14-2025T08:26:31
[2025-12-14 16:01:52] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:26:31
[2025-12-14 16:01:52] [ERROR] Error formatting datetime '2025-14-12T08:26:31': Failed to parse time string (2025-14-12T08:26:31) at position 6 (4): Unexpected character
[2025-12-14 16:01:52] [INFO]   -> Set field 'timeonscene' = null
[2025-12-14 16:01:52] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-14 16:01:52] [INFO]   -> Found value: 12-14-2025T09:58:33
[2025-12-14 16:01:52] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T09:58:33
[2025-12-14 16:01:52] [ERROR] Error formatting datetime '2025-14-12T09:58:33': Failed to parse time string (2025-14-12T09:58:33) at position 6 (4): Unexpected character
[2025-12-14 16:01:52] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-14 16:01:52] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-14 16:01:52] [INFO]   -> Found value: 12-14-2025T08:19:12
[2025-12-14 16:01:52] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:19:12
[2025-12-14 16:01:52] [ERROR] Error formatting datetime '2025-14-12T08:19:12': Failed to parse time string (2025-14-12T08:19:12) at position 6 (4): Unexpected character
[2025-12-14 16:01:52] [INFO]   -> Set field 'timedispatch' = null
[2025-12-14 16:01:52] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-14 16:01:52] [INFO]   -> Found value: SCRFD
[2025-12-14 16:01:52] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2025-12-14 16:01:52] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-14 16:01:52] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-14 16:01:52] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-29703","incidentLocationStreetNumber":364,"streetName":"S DEAL ST","incidentLocationCity":"DIEHLSTADT","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"DEATH-UNATTENDED","dispatchNotes":"12-14-2025 08:14:54|DIELSTADT\n78 YR OLD FM FELL, LEGS WEEK\nMALE POSSIBLY J4 80, NOT BREATHING, BODY STIFF 12-14-2025 08:29:09|PER 346 CONTACT 341C 12-14-2025 08:31:55|NOTIFIED 341C, ENROUTE 12-14-2025 08:35:49|MCMIKLE NOTIFIED 12-14-2025 08:39:27|CORONER TURNED CUSTODY OF THE BODY OVER TO MCMIKLE 12-14-2025 09:23:40|MCMIKLE ON SCENE 12-14-2025 09:58:37|Disposition - Scott County S.O. (MO):  RPT 12-14-2025 09:58:51|Disposition - Scott County Rural:  RPT\nDisposition - Scott County S.O. (MO):  RPT 12-14-2025 09:59:38|Disposition - SSCA:  RPT\nDisposition - SSCA UNIT:  NRN","cADLog":"12-14-2025 08:14:54|DIELSTADT\n78 YR OLD FM FELL, LEGS WEEK\nMALE POSSIBLY J4 80, NOT BREATHING, BODY STIFF 12-14-2025 08:29:09|PER 346 CONTACT 341C 12-14-2025 08:31:55|NOTIFIED 341C, ENROUTE 12-14-2025 08:35:49|MCMIKLE NOTIFIED 12-14-2025 08:39:27|CORONER TURNED CUSTODY OF THE BODY OVER TO MCMIKLE 12-14-2025 09:23:40|MCMIKLE ON SCENE 12-14-2025 09:58:37|Disposition - Scott County S.O. (MO):  RPT 12-14-2025 09:58:51|Disposition - Scott County Rural:  RPT\nDisposition - Scott County S.O. (MO):  RPT 12-14-2025 09:59:38|Disposition - SSCA:  RPT\nDisposition - SSCA UNIT:  NRN","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":1701,"name":"1701","timeenroutetoscene":null,"timeonscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2025-12-14 16:01:52] [INFO] Number of extracted fields: 22
[2025-12-14 16:01:52] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2025-12-14 16:01:52] [INFO] Multi-agency routing check: CAD Agency ID = SCRFD, Assigned Agencies count = 2
[2025-12-14 16:01:52] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'SCRFD'
[2025-12-14 16:01:52] [INFO] Found SAASClient match: ID = 6643bdb30659f00d8, Name = Scott County Rural Fire Protection District
[2025-12-14 16:01:52] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) based on CAD ID: 'SCRFD'
[2025-12-14 16:01:52] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-14 16:01:52] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-14 16:01:52] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2025-12-14 16:01:52] [INFO] Found existing IncidentTypeMapping with ID: 693edef794e1e3e45
[2025-12-14 16:01:52] [INFO] Found existing Dispatch with cADNumber '25-29703', ID: 693ec74bc420cf59b - will update instead of create
[2025-12-14 16:01:52] [INFO] Updated existing Dispatches record with ID: 693ec74bc420cf59b
[2025-12-14 16:01:52] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29703.xml
[2025-12-14 16:01:52] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29703.xml
[2025-12-14 16:13:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29710.xml
[2025-12-14 16:13:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29710.xml for user: 68d56363ec1209189
[2025-12-14 16:13:01] [INFO] File size: 1358 bytes
[2025-12-14 16:13:01] [INFO] Created FTPFiles record with ID: 693ee20d69d68417c
[2025-12-14 16:13:01] [INFO] About to extract fields from XML. File size: 1358 bytes
[2025-12-14 16:13:01] [INFO] Number of mappings: 21
[2025-12-14 16:13:01] [INFO] Starting XML parsing. Content length: 1358
[2025-12-14 16:13:01] [INFO] XML parsed successfully. Root element: Incident
[2025-12-14 16:13:01] [INFO] Processing 21 field mappings
[2025-12-14 16:13:01] [INFO] Mapping #1: Extracting 'IncidentNumber' => 'dispatchRunNumber'
[2025-12-14 16:13:01] [INFO]   -> Found value: 25-29710
[2025-12-14 16:13:01] [INFO]   -> Set field 'dispatchRunNumber' = "25-29710"
[2025-12-14 16:13:01] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-14 16:13:01] [INFO]   -> Found value: 341
[2025-12-14 16:13:01] [INFO]   -> Set field 'incidentLocationStreetNumber' = 341
[2025-12-14 16:13:01] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-14 16:13:01] [INFO]   -> Found value: E AULT ST
[2025-12-14 16:13:01] [INFO]   -> Set field 'streetName' = "E AULT ST"
[2025-12-14 16:13:01] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-14 16:13:01] [INFO]   -> No value found (null or empty)
[2025-12-14 16:13:01] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-14 16:13:01] [INFO]   -> Found value: MORLEY
[2025-12-14 16:13:01] [INFO]   -> Set field 'incidentLocationCity' = "MORLEY"
[2025-12-14 16:13:01] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-14 16:13:01] [INFO]   -> No value found (null or empty)
[2025-12-14 16:13:01] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-14 16:13:01] [INFO]   -> Found value: MO
[2025-12-14 16:13:01] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2025-12-14 16:13:01] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-14 16:13:01] [INFO]   -> Found value: 63767
[2025-12-14 16:13:01] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63767
[2025-12-14 16:13:01] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-14 16:13:01] [INFO]   -> Found value: 0
[2025-12-14 16:13:01] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-14 16:13:01] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-14 16:13:01] [INFO]   -> Found value: 0
[2025-12-14 16:13:01] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-14 16:13:01] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-14 16:13:01] [INFO]   -> Found value: OTHER
[2025-12-14 16:13:01] [INFO]   -> Set field 'incidentTypeValue1' = "OTHER"
[2025-12-14 16:13:01] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-14 16:13:01] [INFO]   -> Found value: 12-14-2025 10:04:35|74 YO MALE WEAK AND UNABLE TO WALK 12-14-2025 10:11:51|NO RESPONSE FROM SCOTT CO...
[2025-12-14 16:13:01] [INFO]   -> Set field 'dispatchNotes' = "12-14-2025 10:04:35|74 YO MALE WEAK AND UNABLE TO WALK 12-14-2025 10:11:51|NO RESPONSE FROM SCOTT COUNTY RURAL"
[2025-12-14 16:13:01] [INFO]   -> Set field 'cADLog' = "12-14-2025 10:04:35|74 YO MALE WEAK AND UNABLE TO WALK 12-14-2025 10:11:51|NO RESPONSE FROM SCOTT COUNTY RURAL"
[2025-12-14 16:13:01] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-14 16:13:01] [INFO]   -> Found value: 12-14-2025T10:05:05
[2025-12-14 16:13:01] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T10:05:05
[2025-12-14 16:13:01] [ERROR] Error formatting datetime '2025-14-12T10:05:05': Failed to parse time string (2025-14-12T10:05:05) at position 6 (4): Unexpected character
[2025-12-14 16:13:01] [INFO]   -> Set field 'alarm' = null
[2025-12-14 16:13:01] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T10:05:05
[2025-12-14 16:13:01] [ERROR] Error formatting datetime '2025-14-12T10:05:05': Failed to parse time string (2025-14-12T10:05:05) at position 6 (4): Unexpected character
[2025-12-14 16:13:01] [INFO]   -> Set field 'dispatched' = null
[2025-12-14 16:13:01] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-14 16:13:01] [INFO]   -> No value found (null or empty)
[2025-12-14 16:13:01] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-14 16:13:01] [INFO]   -> No value found (null or empty)
[2025-12-14 16:13:01] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-14 16:13:01] [INFO]   -> Found value: RURAL PAGE
[2025-12-14 16:13:01] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2025-12-14 16:13:01] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2025-12-14 16:13:01] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-14 16:13:01] [INFO]   -> No value found (null or empty)
[2025-12-14 16:13:01] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-14 16:13:01] [INFO]   -> No value found (null or empty)
[2025-12-14 16:13:01] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-14 16:13:01] [INFO]   -> Found value: 12-14-2025T10:12:01
[2025-12-14 16:13:01] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T10:12:01
[2025-12-14 16:13:01] [ERROR] Error formatting datetime '2025-14-12T10:12:01': Failed to parse time string (2025-14-12T10:12:01) at position 6 (4): Unexpected character
[2025-12-14 16:13:01] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-14 16:13:01] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-14 16:13:01] [INFO]   -> Found value: 12-14-2025T10:06:27
[2025-12-14 16:13:01] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T10:06:27
[2025-12-14 16:13:01] [ERROR] Error formatting datetime '2025-14-12T10:06:27': Failed to parse time string (2025-14-12T10:06:27) at position 6 (4): Unexpected character
[2025-12-14 16:13:01] [INFO]   -> Set field 'timedispatch' = null
[2025-12-14 16:13:01] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-14 16:13:01] [INFO]   -> Found value: SCRFD
[2025-12-14 16:13:01] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2025-12-14 16:13:01] [INFO] Finished extracting fields. Total fields extracted: 18
[2025-12-14 16:13:01] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-14 16:13:01] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-29710","incidentLocationStreetNumber":341,"streetName":"E AULT ST","incidentLocationCity":"MORLEY","incidentLocationStateName":"MO","nERISIncidentPostalCode":63767,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"OTHER","dispatchNotes":"12-14-2025 10:04:35|74 YO MALE WEAK AND UNABLE TO WALK 12-14-2025 10:11:51|NO RESPONSE FROM SCOTT COUNTY RURAL","cADLog":"12-14-2025 10:04:35|74 YO MALE WEAK AND UNABLE TO WALK 12-14-2025 10:11:51|NO RESPONSE FROM SCOTT COUNTY RURAL","alarm":null,"dispatched":null,"cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2025-12-14 16:13:01] [INFO] Number of extracted fields: 19
[2025-12-14 16:13:01] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2025-12-14 16:13:01] [INFO] Multi-agency routing check: CAD Agency ID = SCRFD, Assigned Agencies count = 2
[2025-12-14 16:13:01] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'SCRFD'
[2025-12-14 16:13:01] [INFO] Found SAASClient match: ID = 6643bdb30659f00d8, Name = Scott County Rural Fire Protection District
[2025-12-14 16:13:01] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) based on CAD ID: 'SCRFD'
[2025-12-14 16:13:01] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-14 16:13:01] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-14 16:13:01] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2025-12-14 16:13:03] [INFO] Found existing IncidentTypeMapping with ID: 6939e59116190ddfb
[2025-12-14 16:13:03] [INFO] Found existing Dispatch with cADNumber '25-29710', ID: 693ee0878fcde1b7d - will update instead of create
[2025-12-14 16:13:03] [INFO] Updated existing Dispatches record with ID: 693ee0878fcde1b7d
[2025-12-14 16:13:03] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29710.xml
[2025-12-14 16:13:03] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29710.xml
[2025-12-14 16:58:37] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29703.xml
[2025-12-14 16:58:37] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29703.xml for user: 68d56363ec1209189
[2025-12-14 16:58:37] [INFO] File size: 2366 bytes
[2025-12-14 16:58:37] [INFO] Created FTPFiles record with ID: 693eecbdaf020737f
[2025-12-14 16:58:37] [INFO] About to extract fields from XML. File size: 2366 bytes
[2025-12-14 16:58:37] [INFO] Number of mappings: 21
[2025-12-14 16:58:37] [INFO] Starting XML parsing. Content length: 2366
[2025-12-14 16:58:37] [INFO] XML parsed successfully. Root element: Incident
[2025-12-14 16:58:37] [INFO] Processing 21 field mappings
[2025-12-14 16:58:37] [INFO] Mapping #1: Extracting 'IncidentNumber' => 'dispatchRunNumber'
[2025-12-14 16:58:37] [INFO]   -> Found value: 25-29703
[2025-12-14 16:58:37] [INFO]   -> Set field 'dispatchRunNumber' = "25-29703"
[2025-12-14 16:58:37] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-14 16:58:37] [INFO]   -> Found value: 364
[2025-12-14 16:58:37] [INFO]   -> Set field 'incidentLocationStreetNumber' = 364
[2025-12-14 16:58:37] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-14 16:58:37] [INFO]   -> Found value: S DEAL ST
[2025-12-14 16:58:37] [INFO]   -> Set field 'streetName' = "S DEAL ST"
[2025-12-14 16:58:37] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-14 16:58:37] [INFO]   -> No value found (null or empty)
[2025-12-14 16:58:37] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-14 16:58:37] [INFO]   -> Found value: DIEHLSTADT
[2025-12-14 16:58:37] [INFO]   -> Set field 'incidentLocationCity' = "DIEHLSTADT"
[2025-12-14 16:58:37] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-14 16:58:37] [INFO]   -> No value found (null or empty)
[2025-12-14 16:58:37] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-14 16:58:37] [INFO]   -> No value found (null or empty)
[2025-12-14 16:58:37] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-14 16:58:37] [INFO]   -> No value found (null or empty)
[2025-12-14 16:58:37] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-14 16:58:37] [INFO]   -> Found value: 0
[2025-12-14 16:58:37] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-14 16:58:37] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-14 16:58:37] [INFO]   -> Found value: 0
[2025-12-14 16:58:37] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-14 16:58:37] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-14 16:58:37] [INFO]   -> Found value: DEATH-UNATTENDED
[2025-12-14 16:58:37] [INFO]   -> Set field 'incidentTypeValue1' = "DEATH-UNATTENDED"
[2025-12-14 16:58:37] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-14 16:58:37] [INFO]   -> Found value: 12-14-2025 08:14:54|DIELSTADT
78 YR OLD FM FELL, LEGS WEEK
MALE POSSIBLY J4 80, NOT BREATHING, BODY ...
[2025-12-14 16:58:37] [INFO]   -> Set field 'dispatchNotes' = "12-14-2025 08:14:54|DIELSTADT\n78 YR OLD FM FELL, LEGS WEEK\nMALE POSSIBLY J4 80, NOT BREATHING, BODY STIFF 12-14-2025 08:29:09|PER 346 CONTACT 341C 12-14-2025 08:31:55|NOTIFIED 341C, ENROUTE 12-14-2025 08:35:49|MCMIKLE NOTIFIED 12-14-2025 08:39:27|CORONER TURNED CUSTODY OF THE BODY OVER TO MCMIKLE 12-14-2025 09:23:40|MCMIKLE ON SCENE 12-14-2025 09:58:37|Disposition - Scott County S.O. (MO):  RPT 12-14-2025 09:58:51|Disposition - Scott County Rural:  RPT\nDisposition - Scott County S.O. (MO):  RPT 12-14-2025 09:59:38|Disposition - SSCA:  RPT\nDisposition - SSCA UNIT:  NRN 12-14-2025 10:01:00|Disposition - Scott County Rural:  RPT\nDisposition - SSCA:  RPT\nDisposition - SSCA UNIT:  NRN 12-14-2025 10:25:23|Disposition - Scott County S.O. (MO):  RPT"
[2025-12-14 16:58:37] [INFO]   -> Set field 'cADLog' = "12-14-2025 08:14:54|DIELSTADT\n78 YR OLD FM FELL, LEGS WEEK\nMALE POSSIBLY J4 80, NOT BREATHING, BODY STIFF 12-14-2025 08:29:09|PER 346 CONTACT 341C 12-14-2025 08:31:55|NOTIFIED 341C, ENROUTE 12-14-2025 08:35:49|MCMIKLE NOTIFIED 12-14-2025 08:39:27|CORONER TURNED CUSTODY OF THE BODY OVER TO MCMIKLE 12-14-2025 09:23:40|MCMIKLE ON SCENE 12-14-2025 09:58:37|Disposition - Scott County S.O. (MO):  RPT 12-14-2025 09:58:51|Disposition - Scott County Rural:  RPT\nDisposition - Scott County S.O. (MO):  RPT 12-14-2025 09:59:38|Disposition - SSCA:  RPT\nDisposition - SSCA UNIT:  NRN 12-14-2025 10:01:00|Disposition - Scott County Rural:  RPT\nDisposition - SSCA:  RPT\nDisposition - SSCA UNIT:  NRN 12-14-2025 10:25:23|Disposition - Scott County S.O. (MO):  RPT"
[2025-12-14 16:58:37] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-14 16:58:37] [INFO]   -> Found value: 12-14-2025T08:18:18
[2025-12-14 16:58:37] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:18:18
[2025-12-14 16:58:37] [ERROR] Error formatting datetime '2025-14-12T08:18:18': Failed to parse time string (2025-14-12T08:18:18) at position 6 (4): Unexpected character
[2025-12-14 16:58:37] [INFO]   -> Set field 'alarm' = null
[2025-12-14 16:58:37] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:18:18
[2025-12-14 16:58:37] [ERROR] Error formatting datetime '2025-14-12T08:18:18': Failed to parse time string (2025-14-12T08:18:18) at position 6 (4): Unexpected character
[2025-12-14 16:58:37] [INFO]   -> Set field 'dispatched' = null
[2025-12-14 16:58:37] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-14 16:58:37] [INFO]   -> Found value: 12-14-2025T08:26:31
[2025-12-14 16:58:37] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:26:31
[2025-12-14 16:58:37] [ERROR] Error formatting datetime '2025-14-12T08:26:31': Failed to parse time string (2025-14-12T08:26:31) at position 6 (4): Unexpected character
[2025-12-14 16:58:37] [INFO]   -> Set field 'onScene' = null
[2025-12-14 16:58:37] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-14 16:58:37] [INFO]   -> Found value: 12-14-2025T09:59:24
[2025-12-14 16:58:37] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T09:59:24
[2025-12-14 16:58:37] [ERROR] Error formatting datetime '2025-14-12T09:59:24': Failed to parse time string (2025-14-12T09:59:24) at position 6 (4): Unexpected character
[2025-12-14 16:58:37] [INFO]   -> Set field 'cleared' = null
[2025-12-14 16:58:37] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T09:59:24
[2025-12-14 16:58:37] [ERROR] Error formatting datetime '2025-14-12T09:59:24': Failed to parse time string (2025-14-12T09:59:24) at position 6 (4): Unexpected character
[2025-12-14 16:58:37] [INFO]   -> Set field 'inService' = null
[2025-12-14 16:58:37] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-14 16:58:37] [INFO]   -> Found value: 1701
[2025-12-14 16:58:37] [INFO]   -> Set field 'cADVehicleID' = 1701
[2025-12-14 16:58:37] [INFO]   -> Set field 'name' = "1701"
[2025-12-14 16:58:37] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-14 16:58:37] [INFO]   -> Found value: 12-14-2025T08:19:14
[2025-12-14 16:58:37] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:19:14
[2025-12-14 16:58:37] [ERROR] Error formatting datetime '2025-14-12T08:19:14': Failed to parse time string (2025-14-12T08:19:14) at position 6 (4): Unexpected character
[2025-12-14 16:58:37] [INFO]   -> Set field 'timeenroutetoscene' = null
[2025-12-14 16:58:37] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-14 16:58:37] [INFO]   -> Found value: 12-14-2025T08:26:31
[2025-12-14 16:58:37] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:26:31
[2025-12-14 16:58:37] [ERROR] Error formatting datetime '2025-14-12T08:26:31': Failed to parse time string (2025-14-12T08:26:31) at position 6 (4): Unexpected character
[2025-12-14 16:58:37] [INFO]   -> Set field 'timeonscene' = null
[2025-12-14 16:58:37] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-14 16:58:37] [INFO]   -> Found value: 12-14-2025T09:58:33
[2025-12-14 16:58:37] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T09:58:33
[2025-12-14 16:58:37] [ERROR] Error formatting datetime '2025-14-12T09:58:33': Failed to parse time string (2025-14-12T09:58:33) at position 6 (4): Unexpected character
[2025-12-14 16:58:37] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-14 16:58:37] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-14 16:58:37] [INFO]   -> Found value: 12-14-2025T08:19:12
[2025-12-14 16:58:37] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T08:19:12
[2025-12-14 16:58:37] [ERROR] Error formatting datetime '2025-14-12T08:19:12': Failed to parse time string (2025-14-12T08:19:12) at position 6 (4): Unexpected character
[2025-12-14 16:58:37] [INFO]   -> Set field 'timedispatch' = null
[2025-12-14 16:58:37] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-14 16:58:37] [INFO]   -> Found value: SCRFD
[2025-12-14 16:58:37] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2025-12-14 16:58:37] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-14 16:58:37] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-14 16:58:37] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-29703","incidentLocationStreetNumber":364,"streetName":"S DEAL ST","incidentLocationCity":"DIEHLSTADT","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"DEATH-UNATTENDED","dispatchNotes":"12-14-2025 08:14:54|DIELSTADT\n78 YR OLD FM FELL, LEGS WEEK\nMALE POSSIBLY J4 80, NOT BREATHING, BODY STIFF 12-14-2025 08:29:09|PER 346 CONTACT 341C 12-14-2025 08:31:55|NOTIFIED 341C, ENROUTE 12-14-2025 08:35:49|MCMIKLE NOTIFIED 12-14-2025 08:39:27|CORONER TURNED CUSTODY OF THE BODY OVER TO MCMIKLE 12-14-2025 09:23:40|MCMIKLE ON SCENE 12-14-2025 09:58:37|Disposition - Scott County S.O. (MO):  RPT 12-14-2025 09:58:51|Disposition - Scott County Rural:  RPT\nDisposition - Scott County S.O. (MO):  RPT 12-14-2025 09:59:38|Disposition - SSCA:  RPT\nDisposition - SSCA UNIT:  NRN 12-14-2025 10:01:00|Disposition - Scott County Rural:  RPT\nDisposition - SSCA:  RPT\nDisposition - SSCA UNIT:  NRN 12-14-2025 10:25:23|Disposition - Scott County S.O. (MO):  RPT","cADLog":"12-14-2025 08:14:54|DIELSTADT\n78 YR OLD FM FELL, LEGS WEEK\nMALE POSSIBLY J4 80, NOT BREATHING, BODY STIFF 12-14-2025 08:29:09|PER 346 CONTACT 341C 12-14-2025 08:31:55|NOTIFIED 341C, ENROUTE 12-14-2025 08:35:49|MCMIKLE NOTIFIED 12-14-2025 08:39:27|CORONER TURNED CUSTODY OF THE BODY OVER TO MCMIKLE 12-14-2025 09:23:40|MCMIKLE ON SCENE 12-14-2025 09:58:37|Disposition - Scott County S.O. (MO):  RPT 12-14-2025 09:58:51|Disposition - Scott County Rural:  RPT\nDisposition - Scott County S.O. (MO):  RPT 12-14-2025 09:59:38|Disposition - SSCA:  RPT\nDisposition - SSCA UNIT:  NRN 12-14-2025 10:01:00|Disposition - Scott County Rural:  RPT\nDisposition - SSCA:  RPT\nDisposition - SSCA UNIT:  NRN 12-14-2025 10:25:23|Disposition - Scott County S.O. (MO):  RPT","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":1701,"name":"1701","timeenroutetoscene":null,"timeonscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2025-12-14 16:58:37] [INFO] Number of extracted fields: 22
[2025-12-14 16:58:37] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2025-12-14 16:58:37] [INFO] Multi-agency routing check: CAD Agency ID = SCRFD, Assigned Agencies count = 2
[2025-12-14 16:58:37] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'SCRFD'
[2025-12-14 16:58:37] [INFO] Found SAASClient match: ID = 6643bdb30659f00d8, Name = Scott County Rural Fire Protection District
[2025-12-14 16:58:37] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) based on CAD ID: 'SCRFD'
[2025-12-14 16:58:37] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-14 16:58:37] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2025-12-14 16:58:37] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2025-12-14 16:58:37] [INFO] Found existing IncidentTypeMapping with ID: 693edef794e1e3e45
[2025-12-14 16:58:38] [INFO] Found existing Dispatch with cADNumber '25-29703', ID: 693ec74bc420cf59b - will update instead of create
[2025-12-14 16:58:38] [INFO] Updated existing Dispatches record with ID: 693ec74bc420cf59b
[2025-12-14 16:58:38] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29703.xml
[2025-12-14 16:58:38] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_25-29703.xml
[2025-12-14 18:09:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137114_20251214_180940.XML
[2025-12-14 18:09:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137114_20251214_180940.XML for user: 68f1466aed072ad4a
[2025-12-14 18:09:40] [INFO] File size: 5642 bytes
[2025-12-14 18:09:41] [INFO] Created FTPFiles record with ID: 693efd650f8c398f7
[2025-12-14 18:09:41] [INFO] About to extract fields from XML. File size: 5642 bytes
[2025-12-14 18:09:41] [INFO] Number of mappings: 26
[2025-12-14 18:09:41] [INFO] Starting XML parsing. Content length: 5642
[2025-12-14 18:09:41] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 18:09:41] [INFO] Processing 26 field mappings
[2025-12-14 18:09:41] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 18:09:41] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-14 18:09:41] [INFO]   -> Found value: PCFD
EMS
RESC
[2025-12-14 18:09:41] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2025-12-14 18:09:41] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 18:09:41] [INFO] Found 3 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-14 18:09:41] [INFO]   -> Found value: 2025003055
2025002466
[2025-12-14 18:09:41] [INFO]   -> Set field 'incidentInternalId' = "2025003055\n2025002466"
[2025-12-14 18:09:41] [INFO]   -> Set field 'dispatchRunNumber' = "2025003055\n2025002466"
[2025-12-14 18:09:41] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 18:09:41] [INFO]   -> Found value: FALL VICTIM
[2025-12-14 18:09:41] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2025-12-14 18:09:41] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 18:09:41] [INFO]   -> Found value: 2582
[2025-12-14 18:09:41] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2582
[2025-12-14 18:09:41] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 18:09:41] [INFO]   -> Found value: HOBERT RD
[2025-12-14 18:09:41] [INFO]   -> Set field 'streetName' = "HOBERT RD"
[2025-12-14 18:09:41] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 18:09:41] [INFO]   -> Found value: COOKEVILLE
[2025-12-14 18:09:41] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-14 18:09:41] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 18:09:41] [INFO]   -> Found value: TN
[2025-12-14 18:09:41] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 18:09:41] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 18:09:41] [INFO]   -> Found value: 38501
[2025-12-14 18:09:41] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2025-12-14 18:09:41] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 18:09:41] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:41] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 18:09:41] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:41] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 18:09:41] [INFO]   -> Found value: 36.21397
[2025-12-14 18:09:41] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21397
[2025-12-14 18:09:41] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 18:09:41] [INFO]   -> Found value: -85.55853
[2025-12-14 18:09:41] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.55853
[2025-12-14 18:09:41] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 18:09:41] [INFO]   -> Found value: 2025-12-14 12:08:49
[2025-12-14 18:09:41] [INFO]   -> Set field 'alarm' = "2025-12-14 12:08:49"
[2025-12-14 18:09:41] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 18:09:41] [INFO]   -> Found value: 2025-12-14 12:09:38
[2025-12-14 18:09:41] [INFO]   -> Set field 'dispatched' = "2025-12-14 12:09:38"
[2025-12-14 18:09:41] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 18:09:41] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:41] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 18:09:41] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:41] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 18:09:41] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:41] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 18:09:41] [INFO]   -> Found value: GAINESBORO GRADE/CELTIC DR
[2025-12-14 18:09:41] [INFO]   -> Set field 'incidentLocationCross' = "GAINESBORO GRADE\/CELTIC DR"
[2025-12-14 18:09:41] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 18:09:41] [INFO]   -> Found value: PCFR
[2025-12-14 18:09:41] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-14 18:09:41] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 18:09:41] [INFO]   -> Found value: 2025-12-14 12:09:38
[2025-12-14 18:09:41] [INFO]   -> Set field 'timedispatch' = "2025-12-14 12:09:38"
[2025-12-14 18:09:41] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 18:09:41] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:41] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 18:09:41] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:41] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 18:09:41] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:41] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 18:09:41] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:41] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 18:09:41] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-14 18:09:41] [INFO]   -> Found value: 20250137114
20250137113
20250137115
[2025-12-14 18:09:41] [INFO]   -> Set field 'policeReportNumber' = "20250137114\n20250137113\n20250137115"
[2025-12-14 18:09:41] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 18:09:41] [INFO]   -> Found value: [EMS] 8 MONTHS OLD  [12/14/25 12:09:36 DSTEPHENS] [EMS] FELL FROM BED LANDING ON CONCRETE  [12/14/25...
[2025-12-14 18:09:41] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 8 MONTHS OLD  [12\/14\/25 12:09:36 DSTEPHENS] [EMS] FELL FROM BED LANDING ON CONCRETE  [12\/14\/25 12:09:24 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 12:08:58 KHILL] [APCO INTELLICOMM] Case ID: VwHpJzGz9X Caller Phone: 9313491966 Caller Name: AT&amp;T MOBILITY Incident Location: 2582 HOBERT RD Incident Location Detail: GAINESBORO GRADE\/CELTIC DR Nature: FALL VICTIM Incident #: 20250137113 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 12:08:51 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 12:08:49 DSTEPHENS]"
[2025-12-14 18:09:41] [INFO]   -> Set field 'cADLog' = "[EMS] 8 MONTHS OLD  [12\/14\/25 12:09:36 DSTEPHENS] [EMS] FELL FROM BED LANDING ON CONCRETE  [12\/14\/25 12:09:24 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 12:08:58 KHILL] [APCO INTELLICOMM] Case ID: VwHpJzGz9X Caller Phone: 9313491966 Caller Name: AT&amp;T MOBILITY Incident Location: 2582 HOBERT RD Incident Location Detail: GAINESBORO GRADE\/CELTIC DR Nature: FALL VICTIM Incident #: 20250137113 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 12:08:51 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 12:08:49 DSTEPHENS]"
[2025-12-14 18:09:41] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 18:09:41] [INFO] Built locationCoordinates from lat/lng: 36.21397,-85.55853
[2025-12-14 18:09:41] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2025003055\n2025002466","dispatchRunNumber":"2025003055\n2025002466","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":2582,"streetName":"HOBERT RD","incidentLocationCity":"COOKEVILLE","incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21397,"nERISIncidentLongitude":-85.55853,"alarm":"2025-12-14 12:08:49","dispatched":"2025-12-14 12:09:38","incidentLocationCross":"GAINESBORO GRADE\/CELTIC DR","cADVehicleID":"PCFR","timedispatch":"2025-12-14 12:09:38","policeReportNumber":"20250137114\n20250137113\n20250137115","dispatchNotes":"[EMS] 8 MONTHS OLD  [12\/14\/25 12:09:36 DSTEPHENS] [EMS] FELL FROM BED LANDING ON CONCRETE  [12\/14\/25 12:09:24 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 12:08:58 KHILL] [APCO INTELLICOMM] Case ID: VwHpJzGz9X Caller Phone: 9313491966 Caller Name: AT&amp;T MOBILITY Incident Location: 2582 HOBERT RD Incident Location Detail: GAINESBORO GRADE\/CELTIC DR Nature: FALL VICTIM Incident #: 20250137113 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 12:08:51 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 12:08:49 DSTEPHENS]","cADLog":"[EMS] 8 MONTHS OLD  [12\/14\/25 12:09:36 DSTEPHENS] [EMS] FELL FROM BED LANDING ON CONCRETE  [12\/14\/25 12:09:24 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 12:08:58 KHILL] [APCO INTELLICOMM] Case ID: VwHpJzGz9X Caller Phone: 9313491966 Caller Name: AT&amp;T MOBILITY Incident Location: 2582 HOBERT RD Incident Location Detail: GAINESBORO GRADE\/CELTIC DR Nature: FALL VICTIM Incident #: 20250137113 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 12:08:51 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 12:08:49 DSTEPHENS]","locationCoordinates":"36.21397,-85.55853"}
[2025-12-14 18:09:41] [INFO] Number of extracted fields: 20
[2025-12-14 18:09:41] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 18:09:41] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
EMS
RESC, Assigned Agencies count = 1
[2025-12-14 18:09:41] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
EMS
RESC'
[2025-12-14 18:09:41] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 18:09:41] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 18:09:41] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 18:09:41] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2025-12-14 18:09:42] [INFO] Created new Dispatches record with ID: 693efd6545214fbeb
[2025-12-14 18:09:42] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137114_20251214_180940.XML
[2025-12-14 18:09:42] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137114_20251214_180940.XML
[2025-12-14 18:09:50] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137114_20251214_180950.XML
[2025-12-14 18:09:50] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137114_20251214_180950.XML for user: 68f1466aed072ad4a
[2025-12-14 18:09:50] [INFO] File size: 5642 bytes
[2025-12-14 18:09:50] [INFO] Created FTPFiles record with ID: 693efd6e41cfd65bd
[2025-12-14 18:09:50] [INFO] About to extract fields from XML. File size: 5642 bytes
[2025-12-14 18:09:50] [INFO] Number of mappings: 26
[2025-12-14 18:09:50] [INFO] Starting XML parsing. Content length: 5642
[2025-12-14 18:09:50] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 18:09:50] [INFO] Processing 26 field mappings
[2025-12-14 18:09:50] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 18:09:50] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-14 18:09:50] [INFO]   -> Found value: PCFD
EMS
RESC
[2025-12-14 18:09:50] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2025-12-14 18:09:50] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 18:09:50] [INFO] Found 3 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-14 18:09:50] [INFO]   -> Found value: 2025003055
2025002466
[2025-12-14 18:09:50] [INFO]   -> Set field 'incidentInternalId' = "2025003055\n2025002466"
[2025-12-14 18:09:50] [INFO]   -> Set field 'dispatchRunNumber' = "2025003055\n2025002466"
[2025-12-14 18:09:50] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 18:09:50] [INFO]   -> Found value: FALL VICTIM
[2025-12-14 18:09:50] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2025-12-14 18:09:50] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 18:09:50] [INFO]   -> Found value: 2582
[2025-12-14 18:09:50] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2582
[2025-12-14 18:09:50] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 18:09:50] [INFO]   -> Found value: HOBERT RD
[2025-12-14 18:09:50] [INFO]   -> Set field 'streetName' = "HOBERT RD"
[2025-12-14 18:09:50] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 18:09:50] [INFO]   -> Found value: COOKEVILLE
[2025-12-14 18:09:50] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-14 18:09:50] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 18:09:50] [INFO]   -> Found value: TN
[2025-12-14 18:09:50] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 18:09:50] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 18:09:50] [INFO]   -> Found value: 38501
[2025-12-14 18:09:50] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2025-12-14 18:09:50] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 18:09:50] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:50] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 18:09:50] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:50] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 18:09:50] [INFO]   -> Found value: 36.21397
[2025-12-14 18:09:50] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21397
[2025-12-14 18:09:50] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 18:09:50] [INFO]   -> Found value: -85.55853
[2025-12-14 18:09:50] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.55853
[2025-12-14 18:09:50] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 18:09:50] [INFO]   -> Found value: 2025-12-14 12:08:49
[2025-12-14 18:09:50] [INFO]   -> Set field 'alarm' = "2025-12-14 12:08:49"
[2025-12-14 18:09:50] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 18:09:50] [INFO]   -> Found value: 2025-12-14 12:09:38
[2025-12-14 18:09:50] [INFO]   -> Set field 'dispatched' = "2025-12-14 12:09:38"
[2025-12-14 18:09:50] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 18:09:50] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:50] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 18:09:50] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:50] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 18:09:50] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:50] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 18:09:50] [INFO]   -> Found value: GAINESBORO GRADE/CELTIC DR
[2025-12-14 18:09:50] [INFO]   -> Set field 'incidentLocationCross' = "GAINESBORO GRADE\/CELTIC DR"
[2025-12-14 18:09:50] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 18:09:50] [INFO]   -> Found value: PCFR
[2025-12-14 18:09:50] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-14 18:09:50] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 18:09:50] [INFO]   -> Found value: 2025-12-14 12:09:38
[2025-12-14 18:09:50] [INFO]   -> Set field 'timedispatch' = "2025-12-14 12:09:38"
[2025-12-14 18:09:50] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 18:09:50] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:50] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 18:09:50] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:50] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 18:09:50] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:50] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 18:09:50] [INFO]   -> No value found (null or empty)
[2025-12-14 18:09:50] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 18:09:50] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-14 18:09:50] [INFO]   -> Found value: 20250137114
20250137113
20250137115
[2025-12-14 18:09:50] [INFO]   -> Set field 'policeReportNumber' = "20250137114\n20250137113\n20250137115"
[2025-12-14 18:09:50] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 18:09:50] [INFO]   -> Found value: [EMS] 8 MONTHS OLD  [12/14/25 12:09:36 DSTEPHENS] [EMS] FELL FROM BED LANDING ON CONCRETE  [12/14/25...
[2025-12-14 18:09:50] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 8 MONTHS OLD  [12\/14\/25 12:09:36 DSTEPHENS] [EMS] FELL FROM BED LANDING ON CONCRETE  [12\/14\/25 12:09:24 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 12:08:58 KHILL] [APCO INTELLICOMM] Case ID: VwHpJzGz9X Caller Phone: 9313491966 Caller Name: AT&amp;T MOBILITY Incident Location: 2582 HOBERT RD Incident Location Detail: GAINESBORO GRADE\/CELTIC DR Nature: FALL VICTIM Incident #: 20250137113 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 12:08:51 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 12:08:49 DSTEPHENS]"
[2025-12-14 18:09:50] [INFO]   -> Set field 'cADLog' = "[EMS] 8 MONTHS OLD  [12\/14\/25 12:09:36 DSTEPHENS] [EMS] FELL FROM BED LANDING ON CONCRETE  [12\/14\/25 12:09:24 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 12:08:58 KHILL] [APCO INTELLICOMM] Case ID: VwHpJzGz9X Caller Phone: 9313491966 Caller Name: AT&amp;T MOBILITY Incident Location: 2582 HOBERT RD Incident Location Detail: GAINESBORO GRADE\/CELTIC DR Nature: FALL VICTIM Incident #: 20250137113 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 12:08:51 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 12:08:49 DSTEPHENS]"
[2025-12-14 18:09:50] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 18:09:50] [INFO] Built locationCoordinates from lat/lng: 36.21397,-85.55853
[2025-12-14 18:09:50] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2025003055\n2025002466","dispatchRunNumber":"2025003055\n2025002466","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":2582,"streetName":"HOBERT RD","incidentLocationCity":"COOKEVILLE","incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21397,"nERISIncidentLongitude":-85.55853,"alarm":"2025-12-14 12:08:49","dispatched":"2025-12-14 12:09:38","incidentLocationCross":"GAINESBORO GRADE\/CELTIC DR","cADVehicleID":"PCFR","timedispatch":"2025-12-14 12:09:38","policeReportNumber":"20250137114\n20250137113\n20250137115","dispatchNotes":"[EMS] 8 MONTHS OLD  [12\/14\/25 12:09:36 DSTEPHENS] [EMS] FELL FROM BED LANDING ON CONCRETE  [12\/14\/25 12:09:24 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 12:08:58 KHILL] [APCO INTELLICOMM] Case ID: VwHpJzGz9X Caller Phone: 9313491966 Caller Name: AT&amp;T MOBILITY Incident Location: 2582 HOBERT RD Incident Location Detail: GAINESBORO GRADE\/CELTIC DR Nature: FALL VICTIM Incident #: 20250137113 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 12:08:51 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 12:08:49 DSTEPHENS]","cADLog":"[EMS] 8 MONTHS OLD  [12\/14\/25 12:09:36 DSTEPHENS] [EMS] FELL FROM BED LANDING ON CONCRETE  [12\/14\/25 12:09:24 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 12:08:58 KHILL] [APCO INTELLICOMM] Case ID: VwHpJzGz9X Caller Phone: 9313491966 Caller Name: AT&amp;T MOBILITY Incident Location: 2582 HOBERT RD Incident Location Detail: GAINESBORO GRADE\/CELTIC DR Nature: FALL VICTIM Incident #: 20250137113 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 12:08:51 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 12:08:49 DSTEPHENS]","locationCoordinates":"36.21397,-85.55853"}
[2025-12-14 18:09:50] [INFO] Number of extracted fields: 20
[2025-12-14 18:09:50] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 18:09:50] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
EMS
RESC, Assigned Agencies count = 1
[2025-12-14 18:09:50] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
EMS
RESC'
[2025-12-14 18:09:50] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 18:09:50] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 18:09:50] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 18:09:50] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2025-12-14 18:09:50] [INFO] Found existing Dispatch with cADNumber '2025003055
2025002466', ID: 693efd6545214fbeb - will update instead of create
[2025-12-14 18:09:50] [INFO] Updated existing Dispatches record with ID: 693efd6545214fbeb
[2025-12-14 18:09:50] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137114_20251214_180950.XML
[2025-12-14 18:09:50] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137114_20251214_180950.XML
[2025-12-14 19:09:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29717.xml
[2025-12-14 19:09:23] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29717.xml for user: 68d56363ec1209189
[2025-12-14 19:09:23] [INFO] File size: 3135 bytes
[2025-12-14 19:09:24] [INFO] Created FTPFiles record with ID: 693f0b6408668826a
[2025-12-14 19:09:24] [INFO] About to extract fields from XML. File size: 3135 bytes
[2025-12-14 19:09:24] [INFO] Number of mappings: 21
[2025-12-14 19:09:24] [INFO] Starting XML parsing. Content length: 3135
[2025-12-14 19:09:24] [INFO] XML parsed successfully. Root element: Incident
[2025-12-14 19:09:24] [INFO] Processing 21 field mappings
[2025-12-14 19:09:24] [INFO] Mapping #1: Extracting 'IncidentNumber' => 'dispatchRunNumber'
[2025-12-14 19:09:24] [INFO]   -> Found value: 25-29717
[2025-12-14 19:09:24] [INFO]   -> Set field 'dispatchRunNumber' = "25-29717"
[2025-12-14 19:09:24] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-14 19:09:24] [INFO]   -> Found value: 105
[2025-12-14 19:09:24] [INFO]   -> Set field 'incidentLocationStreetNumber' = 105
[2025-12-14 19:09:24] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-14 19:09:24] [INFO]   -> Found value: WINTER DR
[2025-12-14 19:09:24] [INFO]   -> Set field 'streetName' = "WINTER DR"
[2025-12-14 19:09:24] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-14 19:09:24] [INFO]   -> No value found (null or empty)
[2025-12-14 19:09:24] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-14 19:09:24] [INFO]   -> Found value: SIKESTON
[2025-12-14 19:09:24] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2025-12-14 19:09:24] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-14 19:09:24] [INFO]   -> No value found (null or empty)
[2025-12-14 19:09:24] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-14 19:09:24] [INFO]   -> Found value: MO
[2025-12-14 19:09:24] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2025-12-14 19:09:24] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-14 19:09:24] [INFO]   -> Found value: 63801
[2025-12-14 19:09:24] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2025-12-14 19:09:24] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-14 19:09:24] [INFO]   -> Found value: 0
[2025-12-14 19:09:24] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-14 19:09:24] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-14 19:09:24] [INFO]   -> Found value: 0
[2025-12-14 19:09:24] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-14 19:09:24] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-14 19:09:24] [INFO]   -> Found value: FIRE-STRUCTURE
[2025-12-14 19:09:24] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-STRUCTURE"
[2025-12-14 19:09:24] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-14 19:09:24] [INFO]   -> Found value: 12-14-2025 12:52:36|Call Received on 12/14/2025 @ 12:52

OVEN ON FIRE 12-14-2025 12:57:16|535 ADVISE...
[2025-12-14 19:09:24] [INFO]   -> Set field 'dispatchNotes' = "12-14-2025 12:52:36|Call Received on 12\/14\/2025 @ 12:52\n\nOVEN ON FIRE 12-14-2025 12:57:16|535 ADVISED NOTHING SHOWING 12-14-2025 12:57:53|535 NO ACTIVE FIRE DOWNGRADE 12-14-2025 12:58:14|B48 COMMAND 12-14-2025 13:00:15|Disposition - SSCA:  RPT 12-14-2025 13:00:23|Disposition - SSCA UNIT:  NRN 12-14-2025 13:02:06|B48 ADVISED L3 TO CLEAR 12-14-2025 13:04:18|B48 CANCEL UNITS NOT ON SCENE 12-14-2025 13:08:43|COMMAND TERMINATED"
[2025-12-14 19:09:24] [INFO]   -> Set field 'cADLog' = "12-14-2025 12:52:36|Call Received on 12\/14\/2025 @ 12:52\n\nOVEN ON FIRE 12-14-2025 12:57:16|535 ADVISED NOTHING SHOWING 12-14-2025 12:57:53|535 NO ACTIVE FIRE DOWNGRADE 12-14-2025 12:58:14|B48 COMMAND 12-14-2025 13:00:15|Disposition - SSCA:  RPT 12-14-2025 13:00:23|Disposition - SSCA UNIT:  NRN 12-14-2025 13:02:06|B48 ADVISED L3 TO CLEAR 12-14-2025 13:04:18|B48 CANCEL UNITS NOT ON SCENE 12-14-2025 13:08:43|COMMAND TERMINATED"
[2025-12-14 19:09:24] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-14 19:09:24] [INFO]   -> Found value: 12-14-2025T12:53:30
[2025-12-14 19:09:24] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T12:53:30
[2025-12-14 19:09:24] [ERROR] Error formatting datetime '2025-14-12T12:53:30': Failed to parse time string (2025-14-12T12:53:30) at position 6 (4): Unexpected character
[2025-12-14 19:09:24] [INFO]   -> Set field 'alarm' = null
[2025-12-14 19:09:24] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T12:53:30
[2025-12-14 19:09:24] [ERROR] Error formatting datetime '2025-14-12T12:53:30': Failed to parse time string (2025-14-12T12:53:30) at position 6 (4): Unexpected character
[2025-12-14 19:09:24] [INFO]   -> Set field 'dispatched' = null
[2025-12-14 19:09:24] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-14 19:09:24] [INFO]   -> Found value: 12-14-2025T12:56:48
[2025-12-14 19:09:24] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T12:56:48
[2025-12-14 19:09:24] [ERROR] Error formatting datetime '2025-14-12T12:56:48': Failed to parse time string (2025-14-12T12:56:48) at position 6 (4): Unexpected character
[2025-12-14 19:09:24] [INFO]   -> Set field 'onScene' = null
[2025-12-14 19:09:24] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-14 19:09:24] [INFO]   -> Found value: 12-14-2025T13:08:47
[2025-12-14 19:09:24] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T13:08:47
[2025-12-14 19:09:24] [ERROR] Error formatting datetime '2025-14-12T13:08:47': Failed to parse time string (2025-14-12T13:08:47) at position 6 (4): Unexpected character
[2025-12-14 19:09:24] [INFO]   -> Set field 'cleared' = null
[2025-12-14 19:09:24] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T13:08:47
[2025-12-14 19:09:24] [ERROR] Error formatting datetime '2025-14-12T13:08:47': Failed to parse time string (2025-14-12T13:08:47) at position 6 (4): Unexpected character
[2025-12-14 19:09:24] [INFO]   -> Set field 'inService' = null
[2025-12-14 19:09:24] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-14 19:09:24] [INFO]   -> Found value: CANCEL
[2025-12-14 19:09:24] [INFO]   -> Set field 'cADVehicleID' = "CANCEL"
[2025-12-14 19:09:24] [INFO]   -> Set field 'name' = "CANCEL"
[2025-12-14 19:09:24] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-14 19:09:24] [INFO]   -> No value found (null or empty)
[2025-12-14 19:09:24] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-14 19:09:24] [INFO]   -> No value found (null or empty)
[2025-12-14 19:09:24] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-14 19:09:24] [INFO]   -> Found value: 12-14-2025T13:08:47
[2025-12-14 19:09:24] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T13:08:47
[2025-12-14 19:09:24] [ERROR] Error formatting datetime '2025-14-12T13:08:47': Failed to parse time string (2025-14-12T13:08:47) at position 6 (4): Unexpected character
[2025-12-14 19:09:24] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-14 19:09:24] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-14 19:09:24] [INFO]   -> Found value: 12-14-2025T13:03:54
[2025-12-14 19:09:24] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T13:03:54
[2025-12-14 19:09:24] [ERROR] Error formatting datetime '2025-14-12T13:03:54': Failed to parse time string (2025-14-12T13:03:54) at position 6 (4): Unexpected character
[2025-12-14 19:09:24] [INFO]   -> Set field 'timedispatch' = null
[2025-12-14 19:09:24] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-14 19:09:24] [INFO]   -> Found value: SDPSFD
[2025-12-14 19:09:24] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2025-12-14 19:09:24] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-14 19:09:24] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-14 19:09:24] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-29717","incidentLocationStreetNumber":105,"streetName":"WINTER DR","incidentLocationCity":"SIKESTON","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-STRUCTURE","dispatchNotes":"12-14-2025 12:52:36|Call Received on 12\/14\/2025 @ 12:52\n\nOVEN ON FIRE 12-14-2025 12:57:16|535 ADVISED NOTHING SHOWING 12-14-2025 12:57:53|535 NO ACTIVE FIRE DOWNGRADE 12-14-2025 12:58:14|B48 COMMAND 12-14-2025 13:00:15|Disposition - SSCA:  RPT 12-14-2025 13:00:23|Disposition - SSCA UNIT:  NRN 12-14-2025 13:02:06|B48 ADVISED L3 TO CLEAR 12-14-2025 13:04:18|B48 CANCEL UNITS NOT ON SCENE 12-14-2025 13:08:43|COMMAND TERMINATED","cADLog":"12-14-2025 12:52:36|Call Received on 12\/14\/2025 @ 12:52\n\nOVEN ON FIRE 12-14-2025 12:57:16|535 ADVISED NOTHING SHOWING 12-14-2025 12:57:53|535 NO ACTIVE FIRE DOWNGRADE 12-14-2025 12:58:14|B48 COMMAND 12-14-2025 13:00:15|Disposition - SSCA:  RPT 12-14-2025 13:00:23|Disposition - SSCA UNIT:  NRN 12-14-2025 13:02:06|B48 ADVISED L3 TO CLEAR 12-14-2025 13:04:18|B48 CANCEL UNITS NOT ON SCENE 12-14-2025 13:08:43|COMMAND TERMINATED","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"CANCEL","name":"CANCEL","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2025-12-14 19:09:24] [INFO] Number of extracted fields: 22
[2025-12-14 19:09:24] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2025-12-14 19:09:24] [INFO] Multi-agency routing check: CAD Agency ID = SDPSFD, Assigned Agencies count = 2
[2025-12-14 19:09:24] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'SDPSFD'
[2025-12-14 19:09:24] [INFO] Found SAASClient match: ID = 6772cab7157b2ebde, Name = Sikeston DPS
[2025-12-14 19:09:24] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) based on CAD ID: 'SDPSFD'
[2025-12-14 19:09:24] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-14 19:09:24] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-14 19:09:24] [INFO] Updated FTPFiles record saasclientId to routed agency: 6772cab7157b2ebde
[2025-12-14 19:09:24] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e868e55c0c
[2025-12-14 19:09:25] [INFO] Created new Dispatches record with ID: 693f0b6460c86179a
[2025-12-14 19:09:25] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29717.xml
[2025-12-14 19:09:25] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29717.xml
[2025-12-14 19:59:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29717.xml
[2025-12-14 19:59:05] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29717.xml for user: 68d56363ec1209189
[2025-12-14 19:59:05] [INFO] File size: 3212 bytes
[2025-12-14 19:59:05] [INFO] Created FTPFiles record with ID: 693f1709c0cdd89db
[2025-12-14 19:59:05] [INFO] About to extract fields from XML. File size: 3212 bytes
[2025-12-14 19:59:05] [INFO] Number of mappings: 21
[2025-12-14 19:59:05] [INFO] Starting XML parsing. Content length: 3212
[2025-12-14 19:59:05] [INFO] XML parsed successfully. Root element: Incident
[2025-12-14 19:59:05] [INFO] Processing 21 field mappings
[2025-12-14 19:59:05] [INFO] Mapping #1: Extracting 'IncidentNumber' => 'dispatchRunNumber'
[2025-12-14 19:59:05] [INFO]   -> Found value: 25-29717
[2025-12-14 19:59:05] [INFO]   -> Set field 'dispatchRunNumber' = "25-29717"
[2025-12-14 19:59:05] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2025-12-14 19:59:05] [INFO]   -> Found value: 105
[2025-12-14 19:59:05] [INFO]   -> Set field 'incidentLocationStreetNumber' = 105
[2025-12-14 19:59:05] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2025-12-14 19:59:05] [INFO]   -> Found value: WINTER DR
[2025-12-14 19:59:05] [INFO]   -> Set field 'streetName' = "WINTER DR"
[2025-12-14 19:59:05] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2025-12-14 19:59:05] [INFO]   -> No value found (null or empty)
[2025-12-14 19:59:05] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2025-12-14 19:59:05] [INFO]   -> Found value: SIKESTON
[2025-12-14 19:59:05] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2025-12-14 19:59:05] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2025-12-14 19:59:05] [INFO]   -> No value found (null or empty)
[2025-12-14 19:59:05] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2025-12-14 19:59:05] [INFO]   -> Found value: MO
[2025-12-14 19:59:05] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2025-12-14 19:59:05] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2025-12-14 19:59:05] [INFO]   -> Found value: 63801
[2025-12-14 19:59:05] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2025-12-14 19:59:05] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2025-12-14 19:59:05] [INFO]   -> Found value: 0
[2025-12-14 19:59:05] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2025-12-14 19:59:05] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2025-12-14 19:59:05] [INFO]   -> Found value: 0
[2025-12-14 19:59:05] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2025-12-14 19:59:05] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2025-12-14 19:59:05] [INFO]   -> Found value: FIRE-STRUCTURE
[2025-12-14 19:59:05] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-STRUCTURE"
[2025-12-14 19:59:05] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2025-12-14 19:59:05] [INFO]   -> Found value: 12-14-2025 12:52:36|Call Received on 12/14/2025 @ 12:52

OVEN ON FIRE 12-14-2025 12:57:16|535 ADVISE...
[2025-12-14 19:59:05] [INFO]   -> Set field 'dispatchNotes' = "12-14-2025 12:52:36|Call Received on 12\/14\/2025 @ 12:52\n\nOVEN ON FIRE 12-14-2025 12:57:16|535 ADVISED NOTHING SHOWING 12-14-2025 12:57:53|535 NO ACTIVE FIRE DOWNGRADE 12-14-2025 12:58:14|B48 COMMAND 12-14-2025 13:00:15|Disposition - SSCA:  RPT 12-14-2025 13:00:23|Disposition - SSCA UNIT:  NRN 12-14-2025 13:02:06|B48 ADVISED L3 TO CLEAR 12-14-2025 13:04:18|B48 CANCEL UNITS NOT ON SCENE 12-14-2025 13:08:43|COMMAND TERMINATED 12-14-2025 13:08:54|Disposition - SDPS FD:  RPT\nDisposition - SDPS PD:  NRN"
[2025-12-14 19:59:05] [INFO]   -> Set field 'cADLog' = "12-14-2025 12:52:36|Call Received on 12\/14\/2025 @ 12:52\n\nOVEN ON FIRE 12-14-2025 12:57:16|535 ADVISED NOTHING SHOWING 12-14-2025 12:57:53|535 NO ACTIVE FIRE DOWNGRADE 12-14-2025 12:58:14|B48 COMMAND 12-14-2025 13:00:15|Disposition - SSCA:  RPT 12-14-2025 13:00:23|Disposition - SSCA UNIT:  NRN 12-14-2025 13:02:06|B48 ADVISED L3 TO CLEAR 12-14-2025 13:04:18|B48 CANCEL UNITS NOT ON SCENE 12-14-2025 13:08:43|COMMAND TERMINATED 12-14-2025 13:08:54|Disposition - SDPS FD:  RPT\nDisposition - SDPS PD:  NRN"
[2025-12-14 19:59:05] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2025-12-14 19:59:05] [INFO]   -> Found value: 12-14-2025T12:53:30
[2025-12-14 19:59:05] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T12:53:30
[2025-12-14 19:59:05] [ERROR] Error formatting datetime '2025-14-12T12:53:30': Failed to parse time string (2025-14-12T12:53:30) at position 6 (4): Unexpected character
[2025-12-14 19:59:05] [INFO]   -> Set field 'alarm' = null
[2025-12-14 19:59:05] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T12:53:30
[2025-12-14 19:59:05] [ERROR] Error formatting datetime '2025-14-12T12:53:30': Failed to parse time string (2025-14-12T12:53:30) at position 6 (4): Unexpected character
[2025-12-14 19:59:05] [INFO]   -> Set field 'dispatched' = null
[2025-12-14 19:59:05] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2025-12-14 19:59:05] [INFO]   -> Found value: 12-14-2025T12:56:48
[2025-12-14 19:59:05] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T12:56:48
[2025-12-14 19:59:05] [ERROR] Error formatting datetime '2025-14-12T12:56:48': Failed to parse time string (2025-14-12T12:56:48) at position 6 (4): Unexpected character
[2025-12-14 19:59:05] [INFO]   -> Set field 'onScene' = null
[2025-12-14 19:59:05] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2025-12-14 19:59:05] [INFO]   -> Found value: 12-14-2025T13:08:47
[2025-12-14 19:59:05] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T13:08:47
[2025-12-14 19:59:05] [ERROR] Error formatting datetime '2025-14-12T13:08:47': Failed to parse time string (2025-14-12T13:08:47) at position 6 (4): Unexpected character
[2025-12-14 19:59:05] [INFO]   -> Set field 'cleared' = null
[2025-12-14 19:59:05] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T13:08:47
[2025-12-14 19:59:05] [ERROR] Error formatting datetime '2025-14-12T13:08:47': Failed to parse time string (2025-14-12T13:08:47) at position 6 (4): Unexpected character
[2025-12-14 19:59:05] [INFO]   -> Set field 'inService' = null
[2025-12-14 19:59:05] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2025-12-14 19:59:05] [INFO]   -> Found value: CANCEL
[2025-12-14 19:59:05] [INFO]   -> Set field 'cADVehicleID' = "CANCEL"
[2025-12-14 19:59:05] [INFO]   -> Set field 'name' = "CANCEL"
[2025-12-14 19:59:05] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2025-12-14 19:59:05] [INFO]   -> No value found (null or empty)
[2025-12-14 19:59:05] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2025-12-14 19:59:05] [INFO]   -> No value found (null or empty)
[2025-12-14 19:59:05] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2025-12-14 19:59:05] [INFO]   -> Found value: 12-14-2025T13:08:47
[2025-12-14 19:59:05] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T13:08:47
[2025-12-14 19:59:05] [ERROR] Error formatting datetime '2025-14-12T13:08:47': Failed to parse time string (2025-14-12T13:08:47) at position 6 (4): Unexpected character
[2025-12-14 19:59:05] [INFO]   -> Set field 'timeunitclear' = null
[2025-12-14 19:59:05] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2025-12-14 19:59:05] [INFO]   -> Found value: 12-14-2025T13:03:54
[2025-12-14 19:59:05] [INFO] Reformatted DD-MM-YYYY date '12-14-2025' (day=12, month=14) to ISO: 2025-14-12T13:03:54
[2025-12-14 19:59:05] [ERROR] Error formatting datetime '2025-14-12T13:03:54': Failed to parse time string (2025-14-12T13:03:54) at position 6 (4): Unexpected character
[2025-12-14 19:59:05] [INFO]   -> Set field 'timedispatch' = null
[2025-12-14 19:59:05] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2025-12-14 19:59:05] [INFO]   -> Found value: SDPSFD
[2025-12-14 19:59:05] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2025-12-14 19:59:05] [INFO] Finished extracting fields. Total fields extracted: 21
[2025-12-14 19:59:05] [INFO] Built locationCoordinates from lat/lng: 0,0
[2025-12-14 19:59:05] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"25-29717","incidentLocationStreetNumber":105,"streetName":"WINTER DR","incidentLocationCity":"SIKESTON","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-STRUCTURE","dispatchNotes":"12-14-2025 12:52:36|Call Received on 12\/14\/2025 @ 12:52\n\nOVEN ON FIRE 12-14-2025 12:57:16|535 ADVISED NOTHING SHOWING 12-14-2025 12:57:53|535 NO ACTIVE FIRE DOWNGRADE 12-14-2025 12:58:14|B48 COMMAND 12-14-2025 13:00:15|Disposition - SSCA:  RPT 12-14-2025 13:00:23|Disposition - SSCA UNIT:  NRN 12-14-2025 13:02:06|B48 ADVISED L3 TO CLEAR 12-14-2025 13:04:18|B48 CANCEL UNITS NOT ON SCENE 12-14-2025 13:08:43|COMMAND TERMINATED 12-14-2025 13:08:54|Disposition - SDPS FD:  RPT\nDisposition - SDPS PD:  NRN","cADLog":"12-14-2025 12:52:36|Call Received on 12\/14\/2025 @ 12:52\n\nOVEN ON FIRE 12-14-2025 12:57:16|535 ADVISED NOTHING SHOWING 12-14-2025 12:57:53|535 NO ACTIVE FIRE DOWNGRADE 12-14-2025 12:58:14|B48 COMMAND 12-14-2025 13:00:15|Disposition - SSCA:  RPT 12-14-2025 13:00:23|Disposition - SSCA UNIT:  NRN 12-14-2025 13:02:06|B48 ADVISED L3 TO CLEAR 12-14-2025 13:04:18|B48 CANCEL UNITS NOT ON SCENE 12-14-2025 13:08:43|COMMAND TERMINATED 12-14-2025 13:08:54|Disposition - SDPS FD:  RPT\nDisposition - SDPS PD:  NRN","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"CANCEL","name":"CANCEL","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2025-12-14 19:59:05] [INFO] Number of extracted fields: 22
[2025-12-14 19:59:05] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2025-12-14 19:59:05] [INFO] Multi-agency routing check: CAD Agency ID = SDPSFD, Assigned Agencies count = 2
[2025-12-14 19:59:05] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'SDPSFD'
[2025-12-14 19:59:05] [INFO] Found SAASClient match: ID = 6772cab7157b2ebde, Name = Sikeston DPS
[2025-12-14 19:59:05] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) based on CAD ID: 'SDPSFD'
[2025-12-14 19:59:05] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-14 19:59:05] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2025-12-14 19:59:05] [INFO] Updated FTPFiles record saasclientId to routed agency: 6772cab7157b2ebde
[2025-12-14 19:59:06] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e868e55c0c
[2025-12-14 19:59:06] [INFO] Found existing Dispatch with cADNumber '25-29717', ID: 693f0b6460c86179a - will update instead of create
[2025-12-14 19:59:06] [INFO] Updated existing Dispatches record with ID: 693f0b6460c86179a
[2025-12-14 19:59:06] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29717.xml
[2025-12-14 19:59:06] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_25-29717.xml
[2025-12-14 20:49:30] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137150_20251214_204930.XML
[2025-12-14 20:49:30] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137150_20251214_204930.XML for user: 68f1466aed072ad4a
[2025-12-14 20:49:30] [INFO] File size: 5602 bytes
[2025-12-14 20:49:30] [INFO] Created FTPFiles record with ID: 693f22da69ecce4e4
[2025-12-14 20:49:30] [INFO] About to extract fields from XML. File size: 5602 bytes
[2025-12-14 20:49:30] [INFO] Number of mappings: 26
[2025-12-14 20:49:30] [INFO] Starting XML parsing. Content length: 5602
[2025-12-14 20:49:30] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 20:49:30] [INFO] Processing 26 field mappings
[2025-12-14 20:49:30] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 20:49:30] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-14 20:49:30] [INFO]   -> Found value: PCFD
EMS
RESC
[2025-12-14 20:49:30] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2025-12-14 20:49:30] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 20:49:30] [INFO] Found 3 elements for 'ReportNumber', concatenating 3 non-empty values
[2025-12-14 20:49:30] [INFO]   -> Found value: 2025003056
2025019407
2025002467
[2025-12-14 20:49:30] [INFO]   -> Set field 'incidentInternalId' = "2025003056\n2025019407\n2025002467"
[2025-12-14 20:49:30] [INFO]   -> Set field 'dispatchRunNumber' = "2025003056\n2025019407\n2025002467"
[2025-12-14 20:49:30] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 20:49:30] [INFO]   -> Found value: FALL VICTIM
[2025-12-14 20:49:30] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2025-12-14 20:49:30] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 20:49:30] [INFO]   -> Found value: 8341
[2025-12-14 20:49:30] [INFO]   -> Set field 'incidentLocationStreetNumber' = 8341
[2025-12-14 20:49:30] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 20:49:30] [INFO]   -> Found value: CHAFFIN RD
[2025-12-14 20:49:30] [INFO]   -> Set field 'streetName' = "CHAFFIN RD"
[2025-12-14 20:49:30] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 20:49:30] [INFO]   -> Found value: BAXTER
[2025-12-14 20:49:30] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2025-12-14 20:49:30] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 20:49:30] [INFO]   -> Found value: TN
[2025-12-14 20:49:30] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 20:49:30] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 20:49:30] [INFO]   -> Found value: 38544
[2025-12-14 20:49:30] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2025-12-14 20:49:30] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 20:49:30] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:30] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 20:49:30] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:30] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 20:49:30] [INFO]   -> Found value: 36.13469
[2025-12-14 20:49:30] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13469
[2025-12-14 20:49:30] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 20:49:30] [INFO]   -> Found value: -85.66454
[2025-12-14 20:49:30] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.66454
[2025-12-14 20:49:30] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 20:49:30] [INFO]   -> Found value: 2025-12-14 14:48:40
[2025-12-14 20:49:30] [INFO]   -> Set field 'alarm' = "2025-12-14 14:48:40"
[2025-12-14 20:49:30] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 20:49:30] [INFO]   -> Found value: 2025-12-14 14:49:21
[2025-12-14 20:49:30] [INFO]   -> Set field 'dispatched' = "2025-12-14 14:49:21"
[2025-12-14 20:49:30] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 20:49:30] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:30] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 20:49:30] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:30] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 20:49:30] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:30] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 20:49:30] [INFO]   -> Found value: OLD BAXTER RD
[2025-12-14 20:49:30] [INFO]   -> Set field 'incidentLocationCross' = "OLD BAXTER RD"
[2025-12-14 20:49:30] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 20:49:30] [INFO]   -> Found value: PCFR
[2025-12-14 20:49:30] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-14 20:49:30] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 20:49:30] [INFO]   -> Found value: 2025-12-14 14:49:21
[2025-12-14 20:49:30] [INFO]   -> Set field 'timedispatch' = "2025-12-14 14:49:21"
[2025-12-14 20:49:30] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 20:49:30] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:30] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 20:49:30] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:30] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 20:49:30] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:30] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 20:49:30] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:30] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 20:49:30] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-14 20:49:30] [INFO]   -> Found value: 20250137150
20250137148
20250137151
[2025-12-14 20:49:30] [INFO]   -> Set field 'policeReportNumber' = "20250137150\n20250137148\n20250137151"
[2025-12-14 20:49:30] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 20:49:30] [INFO]   -> Found value: [EMS] 250 LBS    6FOOT 4 INCHES  [12/14/25 14:49:14 DSTEPHENS] Radio Channel: RESCUE  [12/14/25 14:4...
[2025-12-14 20:49:30] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 250 LBS    6FOOT 4 INCHES  [12\/14\/25 14:49:14 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 14:48:56 KHILL] [APCO INTELLICOMM] Case ID: OsxbMcwGtO Caller Phone: 9318583089 Caller Name: HARRIS HOWARD &amp; COLLEEN Incident Location: 8341 CHAFFIN RD Incident Location Detail: OLD BAXTER RD\/ Nature: FALL VICTIM Incident #: 20250137148 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 14:48:43 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 14:48:40 DSTEPHENS] HARRIS HOWARD  [12\/14\/25 14:48:35 DSTEPHENS]]"
[2025-12-14 20:49:30] [INFO]   -> Set field 'cADLog' = "[EMS] 250 LBS    6FOOT 4 INCHES  [12\/14\/25 14:49:14 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 14:48:56 KHILL] [APCO INTELLICOMM] Case ID: OsxbMcwGtO Caller Phone: 9318583089 Caller Name: HARRIS HOWARD &amp; COLLEEN Incident Location: 8341 CHAFFIN RD Incident Location Detail: OLD BAXTER RD\/ Nature: FALL VICTIM Incident #: 20250137148 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 14:48:43 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 14:48:40 DSTEPHENS] HARRIS HOWARD  [12\/14\/25 14:48:35 DSTEPHENS]]"
[2025-12-14 20:49:30] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 20:49:30] [INFO] Built locationCoordinates from lat/lng: 36.13469,-85.66454
[2025-12-14 20:49:30] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2025003056\n2025019407\n2025002467","dispatchRunNumber":"2025003056\n2025019407\n2025002467","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":8341,"streetName":"CHAFFIN RD","incidentLocationCity":"BAXTER","incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.13469,"nERISIncidentLongitude":-85.66454,"alarm":"2025-12-14 14:48:40","dispatched":"2025-12-14 14:49:21","incidentLocationCross":"OLD BAXTER RD","cADVehicleID":"PCFR","timedispatch":"2025-12-14 14:49:21","policeReportNumber":"20250137150\n20250137148\n20250137151","dispatchNotes":"[EMS] 250 LBS    6FOOT 4 INCHES  [12\/14\/25 14:49:14 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 14:48:56 KHILL] [APCO INTELLICOMM] Case ID: OsxbMcwGtO Caller Phone: 9318583089 Caller Name: HARRIS HOWARD &amp; COLLEEN Incident Location: 8341 CHAFFIN RD Incident Location Detail: OLD BAXTER RD\/ Nature: FALL VICTIM Incident #: 20250137148 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 14:48:43 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 14:48:40 DSTEPHENS] HARRIS HOWARD  [12\/14\/25 14:48:35 DSTEPHENS]]","cADLog":"[EMS] 250 LBS    6FOOT 4 INCHES  [12\/14\/25 14:49:14 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 14:48:56 KHILL] [APCO INTELLICOMM] Case ID: OsxbMcwGtO Caller Phone: 9318583089 Caller Name: HARRIS HOWARD &amp; COLLEEN Incident Location: 8341 CHAFFIN RD Incident Location Detail: OLD BAXTER RD\/ Nature: FALL VICTIM Incident #: 20250137148 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 14:48:43 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 14:48:40 DSTEPHENS] HARRIS HOWARD  [12\/14\/25 14:48:35 DSTEPHENS]]","locationCoordinates":"36.13469,-85.66454"}
[2025-12-14 20:49:30] [INFO] Number of extracted fields: 20
[2025-12-14 20:49:30] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 20:49:30] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
EMS
RESC, Assigned Agencies count = 1
[2025-12-14 20:49:30] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
EMS
RESC'
[2025-12-14 20:49:30] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 20:49:30] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 20:49:30] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 20:49:30] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2025-12-14 20:49:32] [INFO] Created new Dispatches record with ID: 693f22daa5d79971b
[2025-12-14 20:49:32] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137150_20251214_204930.XML
[2025-12-14 20:49:32] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137150_20251214_204930.XML
[2025-12-14 20:49:32] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137150_20251214_204930_1.XML
[2025-12-14 20:49:32] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137150_20251214_204930_1.XML for user: 68f1466aed072ad4a
[2025-12-14 20:49:32] [INFO] File size: 5602 bytes
[2025-12-14 20:49:32] [INFO] Created FTPFiles record with ID: 693f22dc4b420d0fa
[2025-12-14 20:49:32] [INFO] About to extract fields from XML. File size: 5602 bytes
[2025-12-14 20:49:32] [INFO] Number of mappings: 26
[2025-12-14 20:49:32] [INFO] Starting XML parsing. Content length: 5602
[2025-12-14 20:49:32] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-14 20:49:32] [INFO] Processing 26 field mappings
[2025-12-14 20:49:32] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-14 20:49:32] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-14 20:49:32] [INFO]   -> Found value: PCFD
EMS
RESC
[2025-12-14 20:49:32] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2025-12-14 20:49:32] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-14 20:49:32] [INFO] Found 3 elements for 'ReportNumber', concatenating 3 non-empty values
[2025-12-14 20:49:32] [INFO]   -> Found value: 2025003056
2025019407
2025002467
[2025-12-14 20:49:32] [INFO]   -> Set field 'incidentInternalId' = "2025003056\n2025019407\n2025002467"
[2025-12-14 20:49:32] [INFO]   -> Set field 'dispatchRunNumber' = "2025003056\n2025019407\n2025002467"
[2025-12-14 20:49:32] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-14 20:49:32] [INFO]   -> Found value: FALL VICTIM
[2025-12-14 20:49:32] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2025-12-14 20:49:32] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-14 20:49:32] [INFO]   -> Found value: 8341
[2025-12-14 20:49:32] [INFO]   -> Set field 'incidentLocationStreetNumber' = 8341
[2025-12-14 20:49:32] [INFO] Mapping #5: Extracting 'RelatedNames.Name.StreetName' => 'streetName'
[2025-12-14 20:49:32] [INFO]   -> Found value: CHAFFIN RD
[2025-12-14 20:49:32] [INFO]   -> Set field 'streetName' = "CHAFFIN RD"
[2025-12-14 20:49:32] [INFO] Mapping #6: Extracting 'RelatedNames.Name.City' => 'incidentLocationCity'
[2025-12-14 20:49:32] [INFO]   -> Found value: BAXTER
[2025-12-14 20:49:32] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2025-12-14 20:49:32] [INFO] Mapping #7: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-14 20:49:32] [INFO]   -> Found value: TN
[2025-12-14 20:49:32] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-14 20:49:32] [INFO] Mapping #8: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-14 20:49:32] [INFO]   -> Found value: 38544
[2025-12-14 20:49:32] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2025-12-14 20:49:32] [INFO] Mapping #9: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-14 20:49:32] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:32] [INFO] Mapping #10: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-14 20:49:32] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:32] [INFO] Mapping #11: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-14 20:49:32] [INFO]   -> Found value: 36.13469
[2025-12-14 20:49:32] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13469
[2025-12-14 20:49:32] [INFO] Mapping #12: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-14 20:49:32] [INFO]   -> Found value: -85.66454
[2025-12-14 20:49:32] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.66454
[2025-12-14 20:49:32] [INFO] Mapping #13: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-14 20:49:32] [INFO]   -> Found value: 2025-12-14 14:48:40
[2025-12-14 20:49:32] [INFO]   -> Set field 'alarm' = "2025-12-14 14:48:40"
[2025-12-14 20:49:32] [INFO] Mapping #14: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-14 20:49:32] [INFO]   -> Found value: 2025-12-14 14:49:21
[2025-12-14 20:49:32] [INFO]   -> Set field 'dispatched' = "2025-12-14 14:49:21"
[2025-12-14 20:49:32] [INFO] Mapping #15: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-14 20:49:32] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:32] [INFO] Mapping #16: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-14 20:49:32] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:32] [INFO] Mapping #17: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-14 20:49:32] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:32] [INFO] Mapping #18: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-14 20:49:32] [INFO]   -> Found value: OLD BAXTER RD
[2025-12-14 20:49:32] [INFO]   -> Set field 'incidentLocationCross' = "OLD BAXTER RD"
[2025-12-14 20:49:32] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-14 20:49:32] [INFO]   -> Found value: PCFR
[2025-12-14 20:49:32] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-14 20:49:32] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-14 20:49:32] [INFO]   -> Found value: 2025-12-14 14:49:21
[2025-12-14 20:49:32] [INFO]   -> Set field 'timedispatch' = "2025-12-14 14:49:21"
[2025-12-14 20:49:32] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-14 20:49:32] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:32] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-14 20:49:32] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:32] [INFO] Mapping #23: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-14 20:49:32] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:32] [INFO] Mapping #24: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-14 20:49:32] [INFO]   -> No value found (null or empty)
[2025-12-14 20:49:32] [INFO] Mapping #25: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-14 20:49:32] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-14 20:49:32] [INFO]   -> Found value: 20250137150
20250137148
20250137151
[2025-12-14 20:49:32] [INFO]   -> Set field 'policeReportNumber' = "20250137150\n20250137148\n20250137151"
[2025-12-14 20:49:32] [INFO] Mapping #26: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-14 20:49:32] [INFO]   -> Found value: [EMS] 250 LBS    6FOOT 4 INCHES  [12/14/25 14:49:14 DSTEPHENS] Radio Channel: RESCUE  [12/14/25 14:4...
[2025-12-14 20:49:32] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 250 LBS    6FOOT 4 INCHES  [12\/14\/25 14:49:14 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 14:48:56 KHILL] [APCO INTELLICOMM] Case ID: OsxbMcwGtO Caller Phone: 9318583089 Caller Name: HARRIS HOWARD &amp; COLLEEN Incident Location: 8341 CHAFFIN RD Incident Location Detail: OLD BAXTER RD\/ Nature: FALL VICTIM Incident #: 20250137148 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 14:48:43 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 14:48:40 DSTEPHENS] HARRIS HOWARD  [12\/14\/25 14:48:35 DSTEPHENS]]"
[2025-12-14 20:49:32] [INFO]   -> Set field 'cADLog' = "[EMS] 250 LBS    6FOOT 4 INCHES  [12\/14\/25 14:49:14 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 14:48:56 KHILL] [APCO INTELLICOMM] Case ID: OsxbMcwGtO Caller Phone: 9318583089 Caller Name: HARRIS HOWARD &amp; COLLEEN Incident Location: 8341 CHAFFIN RD Incident Location Detail: OLD BAXTER RD\/ Nature: FALL VICTIM Incident #: 20250137148 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 14:48:43 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 14:48:40 DSTEPHENS] HARRIS HOWARD  [12\/14\/25 14:48:35 DSTEPHENS]]"
[2025-12-14 20:49:32] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-14 20:49:32] [INFO] Built locationCoordinates from lat/lng: 36.13469,-85.66454
[2025-12-14 20:49:32] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2025003056\n2025019407\n2025002467","dispatchRunNumber":"2025003056\n2025019407\n2025002467","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":8341,"streetName":"CHAFFIN RD","incidentLocationCity":"BAXTER","incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.13469,"nERISIncidentLongitude":-85.66454,"alarm":"2025-12-14 14:48:40","dispatched":"2025-12-14 14:49:21","incidentLocationCross":"OLD BAXTER RD","cADVehicleID":"PCFR","timedispatch":"2025-12-14 14:49:21","policeReportNumber":"20250137150\n20250137148\n20250137151","dispatchNotes":"[EMS] 250 LBS    6FOOT 4 INCHES  [12\/14\/25 14:49:14 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 14:48:56 KHILL] [APCO INTELLICOMM] Case ID: OsxbMcwGtO Caller Phone: 9318583089 Caller Name: HARRIS HOWARD &amp; COLLEEN Incident Location: 8341 CHAFFIN RD Incident Location Detail: OLD BAXTER RD\/ Nature: FALL VICTIM Incident #: 20250137148 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 14:48:43 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 14:48:40 DSTEPHENS] HARRIS HOWARD  [12\/14\/25 14:48:35 DSTEPHENS]]","cADLog":"[EMS] 250 LBS    6FOOT 4 INCHES  [12\/14\/25 14:49:14 DSTEPHENS] Radio Channel: RESCUE  [12\/14\/25 14:48:56 KHILL] [APCO INTELLICOMM] Case ID: OsxbMcwGtO Caller Phone: 9318583089 Caller Name: HARRIS HOWARD &amp; COLLEEN Incident Location: 8341 CHAFFIN RD Incident Location Detail: OLD BAXTER RD\/ Nature: FALL VICTIM Incident #: 20250137148 CAD Call Taker: DSTEPHENS Chief Complaint: (empty)  [12\/14\/25 14:48:43 PSUTIL01] Event spawned from FALL VICTIM.  [12\/14\/2025 14:48:40 DSTEPHENS] HARRIS HOWARD  [12\/14\/25 14:48:35 DSTEPHENS]]","locationCoordinates":"36.13469,-85.66454"}
[2025-12-14 20:49:32] [INFO] Number of extracted fields: 20
[2025-12-14 20:49:32] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 20:49:32] [INFO] Multi-agency routing check: CAD Agency ID = PCFD
EMS
RESC, Assigned Agencies count = 1
[2025-12-14 20:49:32] [INFO] Multi-agency mode detected. Looking up SAASClient by cADAgencyIdentifier: 'PCFD
EMS
RESC'
[2025-12-14 20:49:32] [WARNING] WARNING: No SAASClient found with cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-14 20:49:32] [INFO] FALLBACK: Using mailbox default saasclientId: 68eeb686225c40db4 (multi-agency routing attempted but failed)
[2025-12-14 20:49:32] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-14 20:49:32] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2025-12-14 20:49:32] [INFO] Found existing Dispatch with cADNumber '2025003056
2025019407
2025002467', ID: 693f22daa5d79971b - will update instead of create
[2025-12-14 20:49:32] [INFO] Updated existing Dispatches record with ID: 693f22daa5d79971b
[2025-12-14 20:49:32] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137150_20251214_204930_1.XML
[2025-12-14 20:49:32] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250137150_20251214_204930_1.XML
