Пример #1
0
        private void LoadController()
        {
            // HospitalManagementController
            doctorStatisticsController    = new DoctorStatisticsController(doctorStatisticsService);
            inventoryStatisticsController = new InventoryStatisticsController(inventoryStatisticsService);
            roomStatisticsController      = new RoomStatisticsController(roomStatisticsService);
            hospitalController            = new HospitalController(hospitalService);
            medicineController            = new MedicineController(medicineService);
            roomController      = new RoomController(roomService);
            inventoryController = new InventoryController(inventoryService);

            // MedicalController
            appointmentController = new AppointmentController(appointmentService, appointmentRecommendationService);
            diseaseController     = new DiseaseController(diseaseService);

            // MiscController
            articleController        = new ArticleController(articleService);
            doctorFeedbackController = new DoctorFeedBackController(doctorFeedbackService);
            feedbackController       = new FeedbackController(feedbackService);
            locationController       = new LocationController(locationService);
            messageController        = new MessageController(messageService);
            notificationController   = new NotificationController(notificationService);

            // UsersController
            doctorController    = new DoctorController(doctorService, diagnosisService, therapyService, medicalRecordService);
            managerController   = new ManagerController(managerService);
            patientController   = new PatientController(patientService, medicalRecordService, therapyService, diagnosisService);
            secretaryController = new SecretaryController(secretaryService);
            userController      = new UserController(userService);
        }
Пример #2
0
        private void buttonObrisiZaposlenog_Click(object sender, RoutedEventArgs e)
        {
            if (SelektovaniZaposleni == null || string.IsNullOrWhiteSpace(SelektovaniZaposleni.Jmbg))
            {
                return;
            }
            foreach (Zaposleni z in TempZaposlenici)
            {
                if (z.Jmbg == SelektovaniZaposleni.Jmbg)
                {
                    DoctorController    doctorController    = new DoctorController();
                    SecretaryController secretaryController = new SecretaryController();
                    UserController      userController1     = new UserController(doctorController);
                    UserController      userController2     = new UserController(secretaryController);
                    if (!userController2.DeleteProfile(z.Jmbg))
                    {
                        userController1.DeleteProfile(z.Jmbg);
                        ExaminationController ec = new ExaminationController();
                        ec.DeleteDoctorExaminations(z.Jmbg);
                        WorkingTimeController wtc = new WorkingTimeController();
                        wtc.DeleteWorkingTime(z.Jmbg);
                    }

                    TempZaposlenici.Remove(z);
                    Zaposlenici.Remove(z);
                    SelektovaniZaposleni = null;

                    break;
                }
            }
        }
        public ViewPatientWindow(string value)
        {
            InitializeComponent();
            double screenWidth  = System.Windows.SystemParameters.PrimaryScreenWidth;
            double screenHeight = System.Windows.SystemParameters.PrimaryScreenHeight;
            double windowWidth  = this.Width;
            double windowHeight = this.Height;

            this.Left = (screenWidth / 2) - (windowWidth / 2);
            this.Top  = (screenHeight / 2) - (windowHeight / 2);


            //PatientManagement pm = new PatientManagement();
            SecretaryController sc = new SecretaryController();

            p = sc.getPatient(value);

            TypeAcc.Content          = TypeAcc.Content + p.TypeAcc.ToString();
            FirstName.Content        = FirstName.Content + p.Name;
            LastName.Content         = LastName.Content + p.LastName;
            Jmbg.Content             = Jmbg.Content + p.Jmbg;
            Sex.Content              = Sex.Content + p.SexType.ToString();
            DateOfBirth.Content      = DateOfBirth.Content + p.DateOfBirth.ToString("dd.MM.yyyy.");
            PlaceOfResidance.Content = PlaceOfResidance.Content + p.PlaceOfResidance;
            Email.Content            = Email.Content + p.Email;
            PhoneNumber.Content      = PhoneNumber.Content + p.PhoneNumber;
            Username.Content         = Username.Content + p.Username;
            Password.Content         = Password.Content + p.Password;
        }
Пример #4
0
        private void Refresh_Click_1(object sender, RoutedEventArgs e)
        {
            SecretaryController sc = new SecretaryController();

            p = sc.getPatient(idPatient);

            lvUsers.ItemsSource = p.ListAllergens;
        }
Пример #5
0
        private void Submit_Click(object sender, RoutedEventArgs e)
        {
            //PatientManagement pm = new PatientManagement();
            SecretaryController sc = new SecretaryController();

            string firstName = textBoxFirstName.Text;
            string lastName  = textBoxLastName.Text;
            string jmbg      = textBoxJMBG.Text;


            string username = textBoxFirstName.Text + textBoxLastName.Text;
            string password = "******";


            string date = BoxDateTime.Text;

            string[] entries = date.Split('/');
            int      year    = Int32.Parse(entries[2]);
            int      month   = Int32.Parse(entries[0]);
            int      day     = Int32.Parse(entries[1]);
            DateTime myDate  = new DateTime(year, month, day);



            int n = sc.GetAllPatients().Count;
            int idPatient;

            if (n > 0)
            {
                idPatient = Int32.Parse(sc.GetAllPatients()[n - 1].Id) + 1;
            }
            else
            {
                idPatient = 0;
            }


            TypeOfPerson typeOfPerson = (TypeOfPerson)Enum.Parse(typeof(TypeOfPerson), "Patient");


            AccountType typeAccc = (AccountType)Enum.Parse(typeof(AccountType), "guestAccount");

            List <Allergen> listAllergens = new List <Allergen>();

            MedicalRecord mr = new MedicalRecord(idPatient.ToString(), typeAccc, 0, firstName, lastName, "empty", jmbg, myDate, "empty", "empty", "empty", 0);

            Patient p = new Patient(typeAccc, firstName, lastName, idPatient.ToString(), myDate, "Empty", "Empty", "Empty", typeOfPerson, username, password, jmbg, 0, mr, listAllergens);

            sc.CreatePatient(p);



            aPw.UpdateView();

            Close();
        }
Пример #6
0
        public void UpdateView()
        {
            //PatientManagement pm = new PatientManagement();
            SecretaryController sc       = new SecretaryController();
            List <Patient>      patients = sc.GetAllPatients();

            lvUsers.ItemsSource = sc.GetAllPatients();

            //ICollectionView view = CollectionViewSource.GetDefaultView(patients);
            // view.Refresh();
        }
Пример #7
0
        public AllEmployeesView()
        {
            InitializeComponent();
            this.DataContext = this;
            Zaposlenici      = new ObservableCollection <Zaposleni>();
            TempZaposlenici  = new ObservableCollection <Zaposleni>();
            Kriterijumi      = new ObservableCollection <string>();
            Kriterijumi.Add("Ime");
            Kriterijumi.Add("Prezime");
            Kriterijumi.Add("JMBG");
            Kriterijumi.Add("Zaposlenje");

            DoctorController doctorController = new DoctorController();
            List <User>      doctors          = doctorController.ViewAllUsers();

            if (doctors != null)
            {
                foreach (User w in doctors)
                {
                    Zaposlenici.Add(new Zaposleni()
                    {
                        Jmbg = w.Jmbg, Ime = w.Name, Prezime = w.Surname, Telefon = w.Phone, Zaposlenje = "doktor"
                    });
                }
            }
            SecretaryController secretaryController = new SecretaryController();
            List <User>         secr = secretaryController.ViewAllUsers();

            if (secr != null)
            {
                foreach (User w in secr)
                {
                    Zaposlenici.Add(new Zaposleni()
                    {
                        Jmbg = w.Jmbg, Ime = w.Name, Prezime = w.Surname, Telefon = w.Phone, Zaposlenje = "sekretar"
                    });
                }
            }
            // Zaposlenici.Add(new Zaposleni() { Ime = "jelena", Prezime = "budisa",Jmbg="1234567",Telefon="0636218781",Zaposlenje= "lekar" });
            //Zaposlenici.Add(new Zaposleni() { Ime = "ana", Prezime = "budisa", Jmbg = "1234567", Telefon = "0636218781", Zaposlenje = "lekar" });
            //Zaposlenici.Add(new Zaposleni() { Ime = "milana", Prezime = "budisa", Jmbg = "1234567", Telefon = "0636218781", Zaposlenje = "lekar" });
            //Zaposlenici.Add(new Zaposleni() { Ime = "dragana", Prezime = "budisa", Jmbg = "1234567", Telefon = "0636218781", Zaposlenje = "lekar" });
            //Zaposlenici.Add(new Zaposleni() { Ime = "sladjana", Prezime = "budisa", Jmbg = "1234567", Telefon = "0636218781", Zaposlenje = "sekretar" });

            foreach (var z in Zaposlenici)
            {
                TempZaposlenici.Add(z);
            }
            SelectedKriterijum = Kriterijumi[0];
            PretragaHint       = "Unesi tekst za pretragu";
        }
Пример #8
0
        private void ButtonOk_Click(object sender, RoutedEventArgs e)
        {
            //PatientManagement pm = new PatientManagement();
            SecretaryController sc = new SecretaryController();

            string id = IdPatient.Text;

            sc.DeletePatient(id);

            aPw.UpdateView();


            Close();
        }
Пример #9
0
        private void Submit_Click(object sender, RoutedEventArgs e)
        {
            SecretaryController sc = new SecretaryController();

            AccountType typeAcc = (AccountType)Enum.Parse(typeof(AccountType), ComboBox1.Text);

            p.medicalRecord.TypeAcc = typeAcc;

            MaritalStatus martialStatus = (MaritalStatus)Enum.Parse(typeof(MaritalStatus), ComboBoxMartialStatus.Text);

            p.medicalRecord.MartialStatus = martialStatus;

            p.medicalRecord.FirstName  = textBoxFirstName.Text;
            p.medicalRecord.NameParent = textBoxNameParent.Text;
            p.medicalRecord.LastName   = textBoxLastName.Text;
            p.medicalRecord.Jmbg       = textBoxJMBG.Text;

            SexType sex;

            if (Convert.ToBoolean(MSex.IsChecked))
            {
                sex = SexType.male;
                p.medicalRecord.SexType = sex;
            }
            else if (Convert.ToBoolean(FSex.IsChecked))
            {
                sex = SexType.female;
                p.medicalRecord.SexType = sex;
            }

            string date = BoxDateTime.Text;

            string[] entries = date.Split('/');
            int      year    = Int32.Parse(entries[2]);
            int      month   = Int32.Parse(entries[0]);
            int      day     = Int32.Parse(entries[1]);
            DateTime myDate  = new DateTime(year, month, day);

            p.medicalRecord.DateOfBirth        = myDate;
            p.medicalRecord.NumberOfHealthCard = textBoxHealthCard.Text;
            p.medicalRecord.PlaceOfResidance   = textBoxPlaceOfResidance.Text;
            p.medicalRecord.PhoneNumber        = textBoxPhoneNumber.Text;

            sc.UpdateMedicalRecord(p);

            aPw.UpdateView();

            Close();
        }
Пример #10
0
        private void Submit_Click(object sender, RoutedEventArgs e)
        {
            //PatientManagement pm = new PatientManagement();
            SecretaryController sc = new SecretaryController();

            AccountType typeAcc = (AccountType)Enum.Parse(typeof(AccountType), ComboBox1.Text);

            p.TypeAcc = typeAcc;

            p.Name     = textBoxFirstName.Text;
            p.LastName = textBoxLastName.Text;
            p.Jmbg     = textBoxJMBG.Text;

            SexType sex;

            if (Convert.ToBoolean(MSex.IsChecked))
            {
                sex       = SexType.male;
                p.SexType = sex;
            }
            else if (Convert.ToBoolean(FSex.IsChecked))
            {
                sex       = SexType.female;
                p.SexType = sex;
            }


            string date = BoxDateTime.Text;

            string[] entries = date.Split('/');
            int      year    = Int32.Parse(entries[2]);
            int      month   = Int32.Parse(entries[0]);
            int      day     = Int32.Parse(entries[1]);
            DateTime myDate  = new DateTime(year, month, day);

            p.DateOfBirth = myDate;

            p.PlaceOfResidance = textBoxPlaceOfResidance.Text;
            p.Email            = textBoxEmail.Text;
            p.PhoneNumber      = textBoxPhoneNumber.Text;
            p.Username         = textBoxUsername.Text;
            p.Password         = textBoxPassword.Text;

            sc.Update(p);
            aPw.UpdateView();

            Close();
        }
Пример #11
0
        public MedicalRecordWindow(string value)
        {
            InitializeComponent();
            double screenWidth  = System.Windows.SystemParameters.PrimaryScreenWidth;
            double screenHeight = System.Windows.SystemParameters.PrimaryScreenHeight;
            double windowWidth  = this.Width;
            double windowHeight = this.Height;

            this.Left = (screenWidth / 2) - (windowWidth / 2);
            this.Top  = (screenHeight / 2) - (windowHeight / 2);


            SecretaryController sc = new SecretaryController();

            idPatient = value;


            p = sc.getPatient(value);



            lvUsers.ItemsSource = p.ListAllergens;


            ComboBox1.Text             = p.TypeAcc.ToString();
            ComboBoxMartialStatus.Text = p.medicalRecord.MartialStatus.ToString();
            textBoxFirstName.Text      = p.Name;
            textBoxNameParent.Text     = p.medicalRecord.NameParent;
            textBoxLastName.Text       = p.LastName;
            textBoxJMBG.Text           = p.Jmbg;

            if (p.SexType == SexType.male)
            {
                MSex.IsChecked = true;
            }
            else
            {
                FSex.IsChecked = true;
            }

            BoxDateTime.Text             = p.DateOfBirth.ToString();
            textBoxHealthCard.Text       = p.medicalRecord.NumberOfHealthCard;
            textBoxPlaceOfResidance.Text = p.PlaceOfResidance;
            textBoxPhoneNumber.Text      = p.PhoneNumber;
        }
Пример #12
0
        public AllPatientsWindow()
        {
            InitializeComponent();
            double screenWidth  = System.Windows.SystemParameters.PrimaryScreenWidth;
            double screenHeight = System.Windows.SystemParameters.PrimaryScreenHeight;
            double windowWidth  = this.Width;
            double windowHeight = this.Height;

            this.Left = (screenWidth / 2) - (windowWidth / 2);
            this.Top  = (screenHeight / 2) - (windowHeight / 2);

            _instance = this;

            SecretaryController sc = new SecretaryController();


            lvUsers.ItemsSource = sc.GetAllPatients();
        }
Пример #13
0
        // Two parameters Constructor to accept Table Name and
        // Customer ID to view the Payments made by that customer
        public frmCrudDashboard(string Table, string custId = "")
        {
            InitializeComponent();


            table        = Table;
            customer     = new CustomerController();
            sec          = new SecretaryController();
            ceo          = new CeoController();
            Ctransaction = new CustomerTransactionController();
            fishtype     = new FishTypeController();
            cannoetype   = new CannoeController();

            // Populate Colums;
            CreateColumns();
            // Populate the Data Grid View
            populateDataGridView();
        }
Пример #14
0
        public Utisak()
        {
            InitializeComponent();
            this.DataContext = this;
            cont             = new ManagerController();
            menadzeri        = cont.GetAll();
            this.DataContext = this;
            sekretar         = new SecretaryUser();
            SecretaryController  scon  = new SecretaryController();
            List <SecretaryUser> lista = scon.GetAll();

            foreach (SecretaryUser s in lista)
            {
                if (s.email.Equals(svojstvo))
                {
                    sekretar = s;
                }
            }
        }
        private void ButtonOk_Click(object sender, RoutedEventArgs e)
        {
            SecretaryController sc = new SecretaryController();

            string idPatient = IdPatient.Text;

            List <Patient> patients = sc.GetAllPatients();

            for (int i = 0; i < patients.Count; i++)
            {
                if (patients[i].Id == idPatient)
                {
                    MedicalRecordWindow window = new MedicalRecordWindow(idPatient)
                    {
                    };
                    window.Show();
                }
            }

            Close();
        }
Пример #16
0
        public EditRegisterPatientWindow(string value)
        {
            InitializeComponent();
            double screenWidth  = System.Windows.SystemParameters.PrimaryScreenWidth;
            double screenHeight = System.Windows.SystemParameters.PrimaryScreenHeight;
            double windowWidth  = this.Width;
            double windowHeight = this.Height;

            this.Left = (screenWidth / 2) - (windowWidth / 2);
            this.Top  = (screenHeight / 2) - (windowHeight / 2);

            //FilesPatients sp = FilesPatients.GetInstance();
            // PatientManagement pm = new PatientManagement();
            SecretaryController sc = new SecretaryController();

            p = sc.getPatient(value);

            ComboBox1.Text        = p.TypeAcc.ToString();
            textBoxFirstName.Text = p.Name;
            textBoxLastName.Text  = p.LastName;
            textBoxJMBG.Text      = p.Jmbg;

            if (p.SexType == SexType.male)
            {
                MSex.IsChecked = true;
            }
            else
            {
                FSex.IsChecked = true;
            }

            BoxDateTime.Text             = p.DateOfBirth.ToString();
            textBoxPlaceOfResidance.Text = p.PlaceOfResidance;
            textBoxEmail.Text            = p.Email;
            textBoxPhoneNumber.Text      = p.PhoneNumber;
            textBoxUsername.Text         = p.Username;
            textBoxPassword.Text         = p.Password;
        }
Пример #17
0
        public App()
        {
            var doctorRepository = new DoctorRepository(
                new CSVStream <Doctor>(DOCTOR_FILE, new DoctorCSVConverter(CSV_DELIMITER, DATETIME_FORMAT)),
                new LongSequencer());
            var patientRepository = new PatientRepository(
                new CSVStream <Patient>(PATIENT_FILE, new PatientCSVConverter(CSV_DELIMITER, DATETIME_FORMAT)),
                new LongSequencer());
            var roomRepository = new RoomRepository(
                new CSVStream <Room>(ROOM_FILE, new RoomCSVConverter(CSV_DELIMITER, DATETIME_FORMAT)),
                new LongSequencer());
            var appointementRepository = new AppointementRepository(
                new CSVStream <Appointement>(APPOINTEMENT_FILE, new AppointementCSVConverter(CSV_DELIMITER, DATETIME_FORMAT)),
                new LongSequencer(),
                doctorRepository,
                patientRepository,
                roomRepository);
            var secretaryRepository = new SecretaryRepository(
                new CSVStream <Secretary>(SECRETARY_FILE, new SecretaryCSVConverter(CSV_DELIMITER, DATETIME_FORMAT)),
                new LongSequencer());
            var feedbackRepository = new FeedbackRepository(
                new CSVStream <Feedback>(FEEDBACK_FILE, new FeedbackCSVConverter(CSV_DELIMITER, DATETIME_FORMAT)),
                new LongSequencer());

            var doctorService       = new DoctorService(doctorRepository);
            var patientService      = new PatientService(patientRepository);
            var roomService         = new RoomService(roomRepository);
            var appointementService = new AppointementService(appointementRepository);
            var secretaryService    = new SecretaryService(secretaryRepository);
            var feedbackService     = new FeedbackService(feedbackRepository);

            DoctorController       = new DoctorController(doctorService);
            PatientController      = new PatientController(patientService);
            RoomController         = new RoomController(roomService);
            AppointementController = new AppointementController(appointementService);
            SecretaryController    = new SecretaryController(secretaryService);
            FeedbackController     = new FeedbackController(feedbackService);
        }
        private void ButtonOk_Click(object sender, RoutedEventArgs e)
        {
            //FilesPatients sp = FilesPatients.GetInstance();
            //PatientManagement pm = new PatientManagement();
            SecretaryController sc = new SecretaryController();

            string idPatient = IdPatient.Text;

            List <Patient> patients = sc.GetAllPatients();

            for (int i = 0; i < patients.Count; i++)
            {
                if (patients[i].Id == idPatient)
                {
                    EditRegisterPatientWindow window = new EditRegisterPatientWindow(idPatient)
                    {
                    };
                    window.Show();
                }
            }

            Close();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            SecretaryController sc = new SecretaryController();
            AllergensManagement am = new AllergensManagement();
            PatientManagement   pm = new PatientManagement();

            Patient p;
            string  cb       = ComboBox1.Text;
            string  specName = textBoxTypeAllergen.Text;

            List <Patient> patients = sc.GetAllPatients();

            p = sc.getPatient(idP);

            string   idAllergen = am.getID(cb);
            Allergen a          = new Allergen(idAllergen, cb, specName);

            p.ListAllergens.Add(a);

            pm.updateAllergen(p);


            Close();
        }
Пример #20
0
        // public PatientDTO a;
        // public DoctorDTO b;
        // public SecretaryDTO c;

        public App()
        {
            // HCI

            medicalRoles = new List <string> {
                "Svi", "Opšte Prakse", "Hirurg", "Dermatolog", "Očni lekar", "Stomatolog"
            };
            roomTypes = new List <string> {
                "Bolnička Soba", "Operaciona Sala", "Soba za preglede"
            };
            medicalAppointmentTypes = new List <string> {
                "Pregled", "Operacija", "Ležanje"
            };
            AddressDTO address = new AddressDTO("1", "Bulevar despota Stefan 7A", "Novi Sad", "Srbija", "21000");

            director     = new DirectorDTO(address, "Dusan", "Urosevic", "1231231231231", "021021", "Male", new DateTime(1990, 5, 5), 123, new TimeInterval(new DateTime(2020, 12, 12), new DateTime(2020, 12, 12)), new TimeInterval(new DateTime(2020, 12, 12), new DateTime(2020, 12, 12)), "[email protected]", "pass", "Klinicki Centar Vojvodina");
            SelectedDate = DateTime.Now;


            // Converters
            var addressConverter           = new AddressConverter();
            var patientConverter           = new PatientConverter(addressConverter);
            var medicineConverter          = new MedicineConverter();
            var questionConverter          = new QuestionConverter(patientConverter);
            var prescriptionConverter      = new PrescriptionConverter(patientConverter, medicineConverter);
            var medicalConsumableConverter = new MedicalConsumableConverter();
            var roomConverter                = new RoomConverter();
            var equipmentConverter           = new EquipmentConverter(roomConverter);
            var guestConverter               = new GuestConverter(addressConverter);
            var hospitalConverter            = new HospitalConverter();
            var doctorConverter              = new DoctorConverter(addressConverter);
            var medicalAppointmentConverter  = new MedicalAppointmentConverter(roomConverter, guestConverter, doctorConverter);
            var renovationConverter          = new RenovationConverter(roomConverter);
            var feedbackConverter            = new FeedbackConverter();
            var reviewConverter              = new ReviewConverter(doctorConverter);
            var anamnesisConvertor           = new AnamnesisConvertor();
            var secretaryConverter           = new SecretaryConverter(questionConverter, addressConverter);
            var inventoryManagementConverter = new InventoryManagementConverter(equipmentConverter, roomConverter);
            var orderConverter               = new OrderConverter(medicalConsumableConverter, medicineConverter, equipmentConverter);
            var reportConverter              = new ReportConverter();
            var approvalConverter            = new ApprovalConverter(doctorConverter);
            var propositionConverter         = new PropositionConverter(medicineConverter, approvalConverter, doctorConverter);


            var referralConverter = new ReferralConverter(medicalAppointmentConverter);


            // Repositories
            // Many to Many
            var medicalAppointmentToDoctorRepository = new MedicalAppointmentToDoctorRepository(
                new CSVStream <MedicalAppointmentToDoctor>(
                    MEDICAL_APPOINTMENT_TO_DOCTOR_FILEPATH,
                    new MedicalAppointmentToDoctorCSVConverter(DELIMITER)),
                new LongSequencer()
                );
            var inventoryManagementToEquipmentRepository = new InventoryManagementToEquipmentRepository(
                new CSVStream <InventoryManagementToEquipment>(
                    INVENTORY_EQUIPMENT_FILEPATH,
                    new InventoryManagementToEquipmentCSVConverter(DELIMITER)),
                new LongSequencer()
                );

            var addressRepository = new AddressRepository(new CSVStream <Address>(ADDRESS_FILEPATH, new AddressCSVConverter(DELIMITER)), new LongSequencer());
            var patientRepository = new PatientRepository(
                new CSVStream <Patient>(PATIENT_FILEPATH, new PatientCSVConverter(DELIMITER, DATETIME_FORMAT)),
                new CSVStream <Patient>(PATIENT_FILEPATH, new PatientCSVConverter(DELIMITER, DATETIME_FORMAT)),
                new CSVStream <Doctor>(DOCTOR_FILEPATH, new DoctorCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                new CSVStream <Secretary>(SECRETARY_FILEPATH, new SecretaryCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                addressRepository, new LongSequencer());
            var doctorRepository = new DoctorRepository(
                new CSVStream <Doctor>(DOCTOR_FILEPATH, new DoctorCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                new CSVStream <Patient>(PATIENT_FILEPATH, new PatientCSVConverter(DELIMITER, DATETIME_FORMAT)),
                new CSVStream <Doctor>(DOCTOR_FILEPATH, new DoctorCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                new CSVStream <Secretary>(SECRETARY_FILEPATH, new SecretaryCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                addressRepository,
                new LongSequencer());
            var secretaryRepository = new SecretaryRepository(
                new CSVStream <Secretary>(SECRETARY_FILEPATH, new SecretaryCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                new CSVStream <Patient>(PATIENT_FILEPATH, new PatientCSVConverter(DELIMITER, DATETIME_FORMAT)),
                new CSVStream <Doctor>(DOCTOR_FILEPATH, new DoctorCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                new CSVStream <Secretary>(SECRETARY_FILEPATH, new SecretaryCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                addressRepository,
                new LongSequencer());


            var inventoryManagementRepository = new InventoryManagementRepository(new CSVStream <InventoryManagement>(INVENTORY_FILEPATH, new InventoryManagementCSVConverter(DELIMITER, DATETIME_FORMAT)), inventoryManagementToEquipmentRepository, new LongSequencer());
            var orderDetailsRepository        = new OrderDetailsRepository(new CSVStream <OrderDetails>(ORDER_DETAILS_FILEPATH, new OrderDetailsCSVConverter(DELIMITER)), new LongSequencer());
            var questionRepository            = new QuestionRepository(new CSVStream <Question>(QUESTION_FILEPATH, new QuestionCSVConverter(DELIMITER, DATETIME_FORMAT)), new LongSequencer());


            var medicalConsumableRepository = new MedicalConsumableRepository(
                new CSVStream <MedicalConsumables>(MEDICAL_CONSUMABLE_FILEPATH, new MedicalConsumableCSVConverter(DELIMITER)),
                new CSVStream <Equipment>(EQUIPMENT_FILEPATH, new EquipmentCSVConverter(DELIMITER)),
                new CSVStream <MedicalConsumables>(MEDICAL_CONSUMABLE_FILEPATH, new MedicalConsumableCSVConverter(DELIMITER)),
                new CSVStream <Medicine>(MEDICINE_FILEPATH, new MedicineCSVConverter(DELIMITER)),
                new LongSequencer());

            var equipmentRepository = new EquipmentRepository(
                new CSVStream <Equipment>(EQUIPMENT_FILEPATH, new EquipmentCSVConverter(DELIMITER)),
                new CSVStream <Equipment>(EQUIPMENT_FILEPATH, new EquipmentCSVConverter(DELIMITER)),
                new CSVStream <MedicalConsumables>(MEDICAL_CONSUMABLE_FILEPATH, new MedicalConsumableCSVConverter(DELIMITER)),
                new CSVStream <Medicine>(MEDICINE_FILEPATH, new MedicineCSVConverter(DELIMITER)),
                new LongSequencer());
            var medicineRepository = new MedicineRepository(
                new CSVStream <Medicine>(MEDICINE_FILEPATH, new MedicineCSVConverter(DELIMITER)),
                new CSVStream <Equipment>(EQUIPMENT_FILEPATH, new EquipmentCSVConverter(DELIMITER)),
                new CSVStream <MedicalConsumables>(MEDICAL_CONSUMABLE_FILEPATH, new MedicalConsumableCSVConverter(DELIMITER)),
                new CSVStream <Medicine>(MEDICINE_FILEPATH, new MedicineCSVConverter(DELIMITER)),
                new LongSequencer());

            var prescriptionRepository = new PrescriptionRepository(new CSVStream <Prescription>(PRESCRIPTION_FILEPATH, new PrescriptionCSVConverter(DELIMITER, DATETIME_FORMAT)), medicineRepository, patientRepository, new LongSequencer());


            var medicalAppointmentRepository = new MedicalAppointmentRepository(
                new CSVStream <MedicalAppointment>(MEDICAL_APPOINTMENT_FILEPATH,
                                                   new MedicalAppointmentCSVConverter(DELIMITER, DATETIME_DETAIL_FORMAT)),
                medicalAppointmentToDoctorRepository,
                patientRepository,
                doctorRepository,
                new LongSequencer());
            var roomRepository = new RoomRepository(new CSVStream <Room>(ROOM_FILEPATH, new RoomCSVConverter(DELIMITER)), new LongSequencer(), equipmentRepository);

            var orderRepository = new OrderRepository(new CSVStream <Order>(ORDER_FILEPATH, new OrderCSVConverter(DELIMITER, DATETIME_FORMAT)), medicineRepository, equipmentRepository, medicalConsumableRepository, orderDetailsRepository, new LongSequencer());

            var renovationRepository  = new RenovationRepository(new CSVStream <Renovation>(RENOVATION_FILEPATH, new RenovationCSVConverter(DELIMITER, DATETIME_FORMAT)), new LongSequencer());
            var feedbackRepository    = new FeedbackRepository(new CSVStream <Feedback>(FEEDBACK_FILEPATH, new FeedbackCSVConverter(DELIMITER)), new LongSequencer());
            var reviewRepository      = new ReviewRepository(new CSVStream <Review>(REVIEW_FILEPATH, new ReviewCSVConverter(DELIMITER)), new LongSequencer());
            var anamnesisRepository   = new AnamnesisRepository(new CSVStream <Anamnesis>(ANAMNESIS_FILEPATH, new AnamnesisCSVConverter(DELIMITER)), new LongSequencer());
            var propositionRepository = new PropositionRepository(new CSVStream <Proposition>(PROPOSITION_FILEPATH, new PropositionCSVConverter(DELIMITER, DATETIME_FORMAT)), new LongSequencer(), medicineRepository);

            // Referral
            var admitionReferralRepository = new AdmitionReferralRepository(
                new CSVStream <Referral>(ADMITION_REFERRAL_FILEPATH, new ReferralCSVConventer(DELIMITER, DATETIME_FORMAT)),
                new LongSequencer()
                );
            var operationReferralRepository = new OperationReferralRepository(
                new CSVStream <Referral>(OPERATION_REFERRAL_FILEPATH, new ReferralCSVConventer(DELIMITER, DATETIME_FORMAT)),
                new LongSequencer());

            var examReferralRepository = new ExamReferralRepository(
                new CSVStream <Referral>(EXAM_REFERRAL_FILEPATH, new ReferralCSVConventer(DELIMITER, DATETIME_FORMAT)),
                new LongSequencer());

            var approvalRepository = new ApprovalRepository(new CSVStream <Approval>(APPROVAL_FILEPATH, new ApprovalCSVConverter(DELIMITER)), new LongSequencer());

            // Services

            var patientService            = new PatientService(patientRepository);
            var questionService           = new QuestionService(questionRepository);
            var addressService            = new AddressService(addressRepository);
            var medicineService           = new MedicineService(medicineRepository);
            var medicalConsumableService  = new MedicalConsumableService(medicalConsumableRepository);
            var prescriptionService       = new PrescriptionService(prescriptionRepository, medicineService, patientService);
            var reportService             = new ReportService();
            var guestService              = new GuestService(patientRepository);
            var equipmentService          = new EquipmentService(equipmentRepository);
            var doctorService             = new DoctorService(doctorRepository);
            var medicalAppointmentService = new MedicalAppointmentService(medicalAppointmentRepository, doctorService);
            var roomService                = new RoomService(roomRepository);
            var renovationService          = new RenovationService(renovationRepository, roomRepository);
            var feedbackService            = new FeedbackService(feedbackRepository);
            var reviewService              = new ReviewService(reviewRepository);
            var employeeService            = new EmployeeService(secretaryRepository, doctorRepository);
            var authenticationService      = new AuthenticationService(employeeService, patientService);
            var secretaryService           = new SecretaryService(secretaryRepository);
            var inventoryManagementService = new InventoryManagementService(inventoryManagementRepository);
            var orderService               = new OrderService(orderRepository);
            var anamnesisService           = new AnamnesisService(anamnesisRepository);
            var propositionService         = new PropositionService(propositionRepository);
            var approvalService            = new ApprovalService(approvalRepository);

            // Controllers
            PatientController           = new PatientController(patientService, patientConverter, guestConverter);
            GuestController             = new GuestController(guestService, guestConverter);
            AddressController           = new AddressController(addressService, addressConverter);
            MedicineController          = new MedicineController(medicineService, medicineConverter);
            QuestionController          = new QuestionController(questionService, questionConverter, patientConverter);
            MedicalConsumableController = new MedicalConsumableController(medicalConsumableService, medicalConsumableConverter);
            AuthenticationController    = new AuthenticationController();
            ReportController            = new ReportController(reportConverter);
            PrescriptionController      = new PrescriptionController(prescriptionService, prescriptionConverter);
            EquipmentController         = new EquipmentController(equipmentService, equipmentConverter);

            MedicalAppointmentController = new MedicalAppointmentController(
                medicalAppointmentService,
                medicalAppointmentConverter,
                doctorConverter,
                roomConverter
                );

            RoomController                = new RoomController(roomService, roomConverter);
            RenovationController          = new RenovationController(renovationService, renovationConverter);
            FeedbackController            = new FeedbackController(feedbackService, feedbackConverter);
            ReviewController              = new ReviewController(reviewService, reviewConverter);
            SecretaryController           = new SecretaryController(secretaryService, secretaryConverter);
            InventoryManagementController = new InventoryManagementController(inventoryManagementService, inventoryManagementConverter);
            OrderController               = new OrderController(orderService, orderConverter);
            DoctorController              = new DoctorController(doctorService, doctorConverter);
            AnamnesisController           = new AnamnesisController(anamnesisService, anamnesisConvertor);
            PropositionController         = new PropositionController(propositionService, propositionConverter);

            // Generators
            SecretaryAppointmentReportGenerator = new SecretaryAppointmentReportGenerator(REPORT_APPOINTMENT_FILEPATH);
            PatientAppointmentReportGenerator   = new PatientAppointmentReportGenerator(REPORT_APPOINTMENT_FILEPATH);
            PrescriptionReportGenerator         = new PrescriptionReportGenerator(REPORT_PRESCRIPTION_FILEPATH);
            DoctorsAppointmentReport            = new DirectorReportGenerator(REPORT_DOCTOR_APPOINTMENTS_FILEPATH, doctorRepository, medicalAppointmentRepository);
            MedicineReportGenerator             = new MedicineReportGenerator(REPORT_MEDICINE_FILEPATH, medicineRepository);


            Synchronise(RenovationController);
        }
        private void Submit_Click(object sender, RoutedEventArgs e)
        {
            //PatientManagement pm = new PatientManagement();
            SecretaryController sc = new SecretaryController();

            string firstName = textBoxFirstName.Text;
            string lastName  = textBoxLastName.Text;
            string jmbg      = textBoxJMBG.Text;

            string date = BoxDateTime.Text;

            string[] entries = date.Split('/');
            int      year    = Int32.Parse(entries[2]);
            int      month   = Int32.Parse(entries[0]);
            int      day     = Int32.Parse(entries[1]);
            DateTime myDate  = new DateTime(year, month, day);

            string placeOfResidance = textBoxPlaceOfResidance.Text;
            string email            = textBoxEmail.Text;
            string phoneNumber      = textBoxPhoneNumber.Text;
            string username         = textBoxUsername.Text;
            string password         = textBoxPassword.Text;

            SexType sex = SexType.male;

            if (Convert.ToBoolean(MSex.IsChecked))
            {
                sex = SexType.male;
            }
            else if (Convert.ToBoolean(FSex.IsChecked))
            {
                sex = SexType.female;
            }

            int n = sc.GetAllPatients().Count;
            int idPatient;

            if (n > 0)
            {
                idPatient = Int32.Parse(sc.GetAllPatients()[n - 1].Id) + 1;
            }
            else
            {
                idPatient = 0;
            }

            TypeOfPerson typeOfPerson = (TypeOfPerson)Enum.Parse(typeof(TypeOfPerson), "Patient");

            List <Allergen> listAllergens = new List <Allergen>();
            MedicalRecord   mr            = new MedicalRecord(idPatient.ToString(), 0, 0, firstName, lastName, "empty", jmbg, myDate, "empty", placeOfResidance, phoneNumber, sex);
            Patient         p             = new Patient(0, firstName, lastName, idPatient.ToString(), myDate, phoneNumber, email, placeOfResidance, typeOfPerson, username, password, jmbg, sex, mr, listAllergens);



            sc.CreatePatient(p);


            aPw.UpdateView();

            Close();
        }