Untitled
unknown
plain_text
a year ago
28 kB
14
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