Untitled

 avatar
unknown
plain_text
9 months ago
28 kB
7
Indexable
using System;
using System.Threading.Tasks;
using SurgerySchedulingBackend.Infrastructure.Algorithm;
using SurgerySchedulingBackend.Repositories.OperationRoom;

namespace SurgerySchedulingBackend.Infrastructure.Algorithm
{
    public class JsonInput
    {
        private readonly IJsonToDatabase _jsonToDatabase;

        public JsonInput(IJsonToDatabase jsonToDatabase)
        {
            _jsonToDatabase = jsonToDatabase;
        }

        public async Task Run()
        {
            // // Sample JSON data for Anesthetist
            // string anesthetistJson = @"
            // {
            //     ""Id"": ""55b0e6e7-0c3c-4f94-93c1-47b8a8e4f5e9"",
            //     ""FirstName"": ""Arda"",
            //     ""LastName"": ""Altinors""
            // }";

            // // await _jsonToDatabase.AddAnesthetistFromJsonAsync(anesthetistJson);

            // // Sample JSON data for OperationRoom
            // string operationRoomJson = @"
            // {
            //     ""Id"": ""c8b0e6e7-0a3c-4b94-83c1-57b8a8e4f5e0"",
            //     ""OperationRoomStatus"": 2
            // }";

            // // await _jsonToDatabase.AddOperationRoomFromJsonAsync(operationRoomJson);

            // // Sample JSON data for Patient
            // string patientJson = @"
            // {
            //     ""Id"": ""a3b0e6e7-0c3c-4f94-93c1-47b8a8e4f5e1"",
            //     ""FirstName"": ""Jane"",
            //     ""LastName"": ""Smith"",
            //     ""DateOfBirth"": ""1990-01-01T00:00:00""
            // }";

            // // await _jsonToDatabase.AddPatientFromJsonAsync(patientJson);

            // // Sample JSON data for Surgeon
            // string surgeonJson = @"
            // {
            //     ""Id"": ""b3c1e6e7-0c3c-4f94-93c1-47b8a8e4f5e2"",
            //     ""FirstName"": ""Alice"",
            //     ""LastName"": ""Johnson""
            // }";

            // // await _jsonToDatabase.AddSurgeonFromJsonAsync(surgeonJson);

            // // Sample JSON data for Surgery
            // string surgeryJson = @"
            // {
            //     ""Id"": ""c5d2e6e7-0c3c-4f94-93c1-47b8a8e4f5e3"",
            //     ""Surgeon"": {
            //         ""Id"": ""b3c1e6e7-0c3c-4f94-93c1-47b8a8e4f5e2"",
            //         ""FirstName"": ""Alice"",
            //         ""LastName"": ""Johnson""
            //     },
            //     ""Anesthetist"": {
            //         ""Id"": ""55b0e6e7-0c3c-4f94-93c1-47b8a8e4f5e9"",
            //         ""FirstName"": ""Arda"",
            //         ""LastName"": ""Altinors""
            //     },
            //     ""Patient"": {
            //         ""Id"": ""a3b0e6e7-0c3c-4f94-93c1-47b8a8e4f5e1"",
            //         ""FirstName"": ""Jane"",
            //         ""LastName"": ""Smith"",
            //         ""DateOfBirth"": ""1990-01-01T00:00:00""
            //     },
            //     ""ProtocolNo"": 123,
            //     ""Duration"": 120,
            //     ""Priority"": 1,
            //     ""AnesthesiaTime"": 15,
            //     ""CleaningTime"": 10,
            //     ""MedEquipSterilizationTime"": 5
            // }";

            // // await _jsonToDatabase.AddSurgeryFromJsonAsync(surgeryJson);

            // // Sample JSON data for Appointment
            // string appointmentJson = @"
            // {
            //     ""Id"": ""d6d2e6e7-0c3c-4f94-93c1-47b8a8e4f5e4"",
            //     ""Surgery"": {
            //         ""Id"": ""c5d2e6e7-0c3c-4f94-93c1-47b8a8e4f5e3"",
            //         ""Surgeon"": {
            //             ""Id"": ""b3c1e6e7-0c3c-4f94-93c1-47b8a8e4f5e2"",
            //             ""FirstName"": ""Alice"",
            //             ""LastName"": ""Johnson""
            //         },
            //         ""Anesthetist"": {
            //             ""Id"": ""55b0e6e7-0c3c-4f94-93c1-47b8a8e4f5e9"",
            //             ""FirstName"": ""Arda"",
            //             ""LastName"": ""Altinors""
            //         },
            //         ""Patient"": {
            //             ""Id"": ""a3b0e6e7-0c3c-4f94-93c1-47b8a8e4f5e1"",
            //             ""FirstName"": ""Jane"",
            //             ""LastName"": ""Smith"",
            //             ""DateOfBirth"": ""1990-01-01T00:00:00""
            //         },
            //         ""ProtocolNo"": 123,
            //         ""Duration"": 120,
            //         ""Priority"": 1,
            //         ""AnesthesiaTime"": 15,
            //         ""CleaningTime"": 10,
            //         ""MedEquipSterilizationTime"": 5
            //     },
            //     ""StartTime"": ""08:00:00"",
            //     ""EndTime"": ""10:00:00"",
            //     ""Date"": ""2024-07-24T00:00:00"",
            //     ""Status"": 0,
            //     ""AssignedOR"": {
            //         ""Id"": ""c8b0e6e7-0a3c-4b94-83c1-57b8a8e4f5e0"",
            //         ""OperationRoomStatus"": 2
            //     }
            // }";
            // // await _jsonToDatabase.AddAppointmentFromJsonAsync(appointmentJson);

            // Sample JSON data for Schedule
            string scheduleJson = @"
                {
                    ""Id"": 100,
                    ""StartDate"": ""2024-07-30T00:00:00Z"",
                    ""Appointments"": [
                        {
                            ""Id"": 101,
                            ""Surgery"": {
                                ""Id"": 102,
                                ""Surgeon"": {
                                    ""Id"": 103,
                                    ""FirstName"": ""Alice"",
                                    ""LastName"": ""Johnson""
                                },
                                ""Anesthetist"": {
                                    ""Id"": 104,
                                    ""FirstName"": ""Arda"",
                                    ""LastName"": ""Altinors""
                                },
                                ""Patient"": {
                                    ""Id"": 105,
                                    ""FirstName"": ""Jane"",
                                    ""LastName"": ""Smith"",
                                    ""DateOfBirth"": ""1990-01-01T00:00:00Z""
                                },
                                ""ProtocolNo"": 123,
                                ""Duration"": 120,
                                ""Priority"": 1,
                                ""AnesthesiaTime"": 15,
                                ""CleaningTime"": 10,
                                ""MedEquipSterilizationTime"": 5
                            },
                            ""StartTime"": 8.0,
                            ""EndTime"": 10.0,
                            ""Date"": ""2024-07-24T00:00:00Z"",
                            ""Status"": 0,
                            ""AssignedOR"": {
                                ""Id"": 106,
                                ""OperationRoomStatus"": 2
                            }
                        },
                        {
                            ""Id"": 107,
                            ""Surgery"": {
                                ""Id"": 108,
                                ""Surgeon"": {
                                    ""Id"": 109,
                                    ""FirstName"": ""Bob"",
                                    ""LastName"": ""Miller""
                                },
                                ""Anesthetist"": {
                                    ""Id"": 110,
                                    ""FirstName"": ""Charlie"",
                                    ""LastName"": ""Brown""
                                },
                                ""Patient"": {
                                    ""Id"": 111,
                                    ""FirstName"": ""Alice"",
                                    ""LastName"": ""Wonderland"",
                                    ""DateOfBirth"": ""1985-05-15T00:00:00Z""
                                },
                                ""ProtocolNo"": 456,
                                ""Duration"": 90,
                                ""Priority"": 2,
                                ""AnesthesiaTime"": 10,
                                ""CleaningTime"": 15,
                                ""MedEquipSterilizationTime"": 7
                            },
                            ""StartTime"": 10.0,
                            ""EndTime"": 11.5,
                            ""Date"": ""2024-07-24T00:00:00Z"",
                            ""Status"": 1,
                            ""AssignedOR"": {
                                ""Id"": 112,
                                ""OperationRoomStatus"": 1
                            }
                        },
                        {
                            ""Id"": 113,
                            ""Surgery"": {
                                ""Id"": 114,
                                ""Surgeon"": {
                                    ""Id"": 115,
                                    ""FirstName"": ""David"",
                                    ""LastName"": ""Clark""
                                },
                                ""Anesthetist"": {
                                    ""Id"": 116,
                                    ""FirstName"": ""Edward"",
                                    ""LastName"": ""Jones""
                                },
                                ""Patient"": {
                                    ""Id"": 117,
                                    ""FirstName"": ""Eve"",
                                    ""LastName"": ""Adams"",
                                    ""DateOfBirth"": ""1992-08-20T00:00:00Z""
                                },
                                ""ProtocolNo"": 789,
                                ""Duration"": 60,
                                ""Priority"": 3,
                                ""AnesthesiaTime"": 12,
                                ""CleaningTime"": 8,
                                ""MedEquipSterilizationTime"": 6
                            },
                            ""StartTime"": 12.0,
                            ""EndTime"": 13.0,
                            ""Date"": ""2024-07-24T00:00:00Z"",
                            ""Status"": 0,
                            ""AssignedOR"": {
                                ""Id"": 118,
                                ""OperationRoomStatus"": 3
                            }
                        },
                        {
                            ""Id"": 119,
                            ""Surgery"": {
                                ""Id"": 120,
                                ""Surgeon"": {
                                    ""Id"": 121,
                                    ""FirstName"": ""Frank"",
                                    ""LastName"": ""Wright""
                                },
                                ""Anesthetist"": {
                                    ""Id"": 122,
                                    ""FirstName"": ""George"",
                                    ""LastName"": ""Harris""
                                },
                                ""Patient"": {
                                    ""Id"": 123,
                                    ""FirstName"": ""Grace"",
                                    ""LastName"": ""Kelly"",
                                    ""DateOfBirth"": ""1980-12-01T00:00:00Z""
                                },
                                ""ProtocolNo"": 101,
                                ""Duration"": 45,
                                ""Priority"": 1,
                                ""AnesthesiaTime"": 10,
                                ""CleaningTime"": 5,
                                ""MedEquipSterilizationTime"": 3
                            },
                            ""StartTime"": 14.0,
                            ""EndTime"": 14.75,
                            ""Date"": ""2024-07-24T00:00:00Z"",
                            ""Status"": 2,
                            ""AssignedOR"": {
                                ""Id"": 124,
                                ""OperationRoomStatus"": 2
                            }
                        },
                        {
                            ""Id"": 125,
                            ""Surgery"": {
                                ""Id"": 126,
                                ""Surgeon"": {
                                    ""Id"": 127,
                                    ""FirstName"": ""Helen"",
                                    ""LastName"": ""Smith""
                                },
                                ""Anesthetist"": {
                                    ""Id"": 128,
                                    ""FirstName"": ""Ian"",
                                    ""LastName"": ""Taylor""
                                },
                                ""Patient"": {
                                    ""Id"": 129,
                                    ""FirstName"": ""Jack"",
                                    ""LastName"": ""White"",
                                    ""DateOfBirth"": ""1975-11-11T00:00:00Z""
                                },
                                ""ProtocolNo"": 202,
                                ""Duration"": 30,
                                ""Priority"": 2,
                                ""AnesthesiaTime"": 8,
                                ""CleaningTime"": 4,
                                ""MedEquipSterilizationTime"": 2
                            },
                            ""StartTime"": 15.0,
                            ""EndTime"": 15.5,
                            ""Date"": ""2024-07-24T00:00:00Z"",
                            ""Status"": 1,
                            ""AssignedOR"": {
                                ""Id"": 130,
                                ""OperationRoomStatus"": 1
                            }
                        },
                        {
                            ""Id"": 131,
                            ""Surgery"": {
                                ""Id"": 132,
                                ""Surgeon"": {
                                    ""Id"": 133,
                                    ""FirstName"": ""Kate"",
                                    ""LastName"": ""Brown""
                                },
                                ""Anesthetist"": {
                                    ""Id"": 134,
                                    ""FirstName"": ""Larry"",
                                    ""LastName"": ""Green""
                                },
                                ""Patient"": {
                                    ""Id"": 135,
                                    ""FirstName"": ""Lucy"",
                                    ""LastName"": ""Gray"",
                                    ""DateOfBirth"": ""1995-06-06T00:00:00Z""
                                },
                                ""ProtocolNo"": 303,
                                ""Duration"": 60,
                                ""Priority"": 3,
                                ""AnesthesiaTime"": 10,
                                ""CleaningTime"": 5,
                                ""MedEquipSterilizationTime"": 4
                            },
                            ""StartTime"": 16.0,
                            ""EndTime"": 17.0,
                            ""Date"": ""2024-07-24T00:00:00Z"",
                            ""Status"": 0,
                            ""AssignedOR"": {
                                ""Id"": 136,
                                ""OperationRoomStatus"": 3
                            }
                        },
                        {
                            ""Id"": 137,
                            ""Surgery"": {
                                ""Id"": 138,
                                ""Surgeon"": {
                                    ""Id"": 139,
                                    ""FirstName"": ""Michael"",
                                    ""LastName"": ""Scott""
                                },
                                ""Anesthetist"": {
                                    ""Id"": 140,
                                    ""FirstName"": ""Nancy"",
                                    ""LastName"": ""Drew""
                                },
                                ""Patient"": {
                                    ""Id"": 141,
                                    ""FirstName"": ""Oliver"",
                                    ""LastName"": ""Twist"",
                                    ""DateOfBirth"": ""1988-04-04T00:00:00Z""
                                },
                                ""ProtocolNo"": 404,
                                ""Duration"": 90,
                                ""Priority"": 1,
                                ""AnesthesiaTime"": 15,
                                ""CleaningTime"": 10,
                                ""MedEquipSterilizationTime"": 5
                            },
                            ""StartTime"": 17.0,
                            ""EndTime"": 18.5,
                            ""Date"": ""2024-07-24T00:00:00Z"",
                            ""Status"": 2,
                            ""AssignedOR"": {
                                ""Id"": 142,
                                ""OperationRoomStatus"": 2
                            }
                        },
                        {
                            ""Id"": 143,
                            ""Surgery"": {
                                ""Id"": 144,
                                ""Surgeon"": {
                                    ""Id"": 145,
                                    ""FirstName"": ""Pam"",
                                    ""LastName"": ""Beesly""
                                },
                                ""Anesthetist"": {
                                    ""Id"": 146,
                                    ""FirstName"": ""Quincy"",
                                    ""LastName"": ""Jones""
                                },
                                ""Patient"": {
                                    ""Id"": 147,
                                    ""FirstName"": ""Rachel"",
                                    ""LastName"": ""Green"",
                                    ""DateOfBirth"": ""1983-02-02T00:00:00Z""
                                },
                                ""ProtocolNo"": 505,
                                ""Duration"": 120,
                                ""Priority"": 2,
                                ""AnesthesiaTime"": 20,
                                ""CleaningTime"": 15,
                                ""MedEquipSterilizationTime"": 10
                            },
                            ""StartTime"": 19.0,
                            ""EndTime"": 21.0,
                            ""Date"": ""2024-07-24T00:00:00Z"",
                            ""Status"": 1,
                            ""AssignedOR"": {
                                ""Id"": 148,
                                ""OperationRoomStatus"": 1
                            }
                        },
                        {
                            ""Id"": 149,
                            ""Surgery"": {
                                ""Id"": 150,
                                ""Surgeon"": {
                                    ""Id"": 151,
                                    ""FirstName"": ""Ross"",
                                    ""LastName"": ""Geller""
                                },
                                ""Anesthetist"": {
                                    ""Id"": 152,
                                    ""FirstName"": ""Susan"",
                                    ""LastName"": ""Baker""
                                },
                                ""Patient"": {
                                    ""Id"": 153,
                                    ""FirstName"": ""Sam"",
                                    ""LastName"": ""Smith"",
                                    ""DateOfBirth"": ""1997-03-03T00:00:00Z""
                                },
                                ""ProtocolNo"": 606,
                                ""Duration"": 60,
                                ""Priority"": 3,
                                ""AnesthesiaTime"": 12,
                                ""CleaningTime"": 8,
                                ""MedEquipSterilizationTime"": 6
                            },
                            ""StartTime"": 21.0,
                            ""EndTime"": 22.0,
                            ""Date"": ""2024-07-24T00:00:00Z"",
                            ""Status"": 0,
                            ""AssignedOR"": {
                                ""Id"": 154,
                                ""OperationRoomStatus"": 3
                            }
                        },
                        {
                            ""Id"": 155,
                            ""Surgery"": {
                                ""Id"": 156,
                                ""Surgeon"": {
                                    ""Id"": 157,
                                    ""FirstName"": ""Tom"",
                                    ""LastName"": ""Riddle""
                                },
                                ""Anesthetist"": {
                                    ""Id"": 158,
                                    ""FirstName"": ""Ursula"",
                                    ""LastName"": ""Stanley""
                                },
                                ""Patient"": {
                                    ""Id"": 159,
                                    ""FirstName"": ""Violet"",
                                    ""LastName"": ""Parr"",
                                    ""DateOfBirth"": ""1987-07-07T00:00:00Z""
                                },
                                ""ProtocolNo"": 707,
                                ""Duration"": 90,
                                ""Priority"": 2,
                                ""AnesthesiaTime"": 15,
                                ""CleaningTime"": 10,
                                ""MedEquipSterilizationTime"": 5
                            },
                            ""StartTime"": 22.0,
                            ""EndTime"": 23.5,
                            ""Date"": ""2024-07-24T00:00:00Z"",
                            ""Status"": 1,
                            ""AssignedOR"": {
                                ""Id"": 160,
                                ""OperationRoomStatus"": 1
                            }
                        }
                    ]
                }";



            try
            {
                await _jsonToDatabase.AddScheduleFromJsonAsync(scheduleJson);
                Console.WriteLine("Schedule added successfully!");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            // Sample JSON data for Initial Input
            string initialInputJson = @"
            {
                ""Surgeries"": [
                    {
                        ""SurgeryID"": 0,
                        ""ProtocolNo"": ""12201133-1"",
                        ""SurgeryName"": ""Lotus Locumus"",
                        ""PatientName"": ""Ayla Çekiç"",
                        ""SurgeryDuration"": 40,
                        ""SurgeonName"": ""Mehmet Atay"",
                        ""AnesthetistName"": ""Refika Kılıçkaya"",
                        ""Priority"": 1,
                        ""AnesthesiaTime"": 15,
                        ""CleaningTime"": 15,
                        ""MedEquipSterilizationTime"": 15
                    },
                    {
                        ""SurgeryID"": 1,
                        ""ProtocolNo"": ""12200283-1"",
                        ""SurgeryName"": ""Pilonidal Kist"",
                        ""PatientName"": ""Abdulbasit Bilgiç"",
                        ""SurgeryDuration"": 30,
                        ""SurgeonName"": ""Serkan Baydar"",
                        ""AnesthetistName"": ""Ahmet Kınsız"",
                        ""Priority"": 9,
                        ""AnesthesiaTime"": 15,
                        ""CleaningTime"": 15,
                        ""MedEquipSterilizationTime"": 15
                    },
                    {
                        ""SurgeryID"": 2,
                        ""ProtocolNo"": ""12201389-1"",
                        ""SurgeryName"": ""Servikal Disk Bozuklukları, Radikülopati İle"",
                        ""PatientName"": ""Yasin Elçi"",
                        ""SurgeryDuration"": 90,
                        ""SurgeonName"": ""Sarper Aktaş"",
                        ""AnesthetistName"": ""Yücel Özgür"",
                        ""Priority"": 8,
                        ""AnesthesiaTime"": 15,
                        ""CleaningTime"": 15,
                        ""MedEquipSterilizationTime"": 15
                    },
                    {
                        ""SurgeryID"": 3,
                        ""ProtocolNo"": ""12201500-1"",
                        ""SurgeryName"": ""Additional Surgery"",
                        ""PatientName"": ""Another Patient"",
                        ""SurgeryDuration"": 100,
                        ""SurgeonName"": ""Sabri Kerem Diril"",
                        ""AnesthetistName"": ""Yücel Özgür"",
                        ""Priority"": 7,
                        ""AnesthesiaTime"": 15,
                        ""CleaningTime"": 15,
                        ""MedEquipSterilizationTime"": 15
                    }
                ],
                ""Surgeons"": [
                    {
                        ""SurgeonName"": ""Mehmet Atay"",
                        ""SurgeonID"": 221
                    },
                    {
                        ""SurgeonName"": ""Serkan Baydar"",
                        ""SurgeonID"": 115
                    },
                    {
                        ""SurgeonName"": ""Sarper Aktaş"",
                        ""SurgeonID"": 153
                    },
                    {
                        ""SurgeonName"": ""Yeliz Palancıoğlu"",
                        ""SurgeonID"": 105
                    },
                    {
                        ""SurgeonName"": ""Mehmet Fatih Yıldız"",
                        ""SurgeonID"": 169
                    },
                    {
                        ""SurgeonName"": ""Sabri Kerem Diril"",
                        ""SurgeonID"": 110
                    }
                ],
                ""Anesthetists"": [
                    {
                        ""AnesthetistName"": ""Refika Kılıçkaya"",
                        ""AnesthetistID"": 3
                    },
                    {
                        ""AnesthetistName"": ""Ahmet Kınsız"",
                        ""AnesthetistID"": 1
                    },
                    {
                        ""AnesthetistName"": ""Yücel Özgür"",
                        ""AnesthetistID"": 2
                    }
                ],
                ""OperatingRooms"": [
                    {
                        ""OperatingRoomID"": 1180
                    },
                    {
                        ""OperatingRoomID"": 1175
                    },
                    {
                        ""OperatingRoomID"": 1174
                    }
                ],
                ""ScheduleInfo"": {
                    ""ORStart"": 0,
                    ""OREnd"": 180.0,
                    ""PlannedHorizon"": 3
                }
            }";

            await _jsonToDatabase.AddDataFromInitialJsonAsync(initialInputJson);
        }
    }
}
Editor is loading...
Leave a Comment