/*
         * Dosyalar tablosuna kayıt etme işlemidir. Ayrıca tarayıcıda taranan dosyanın yoluda ilgili tabloya kayıt edilmektedir.
         * Örneğin adli sağlık kurulu dosyası ise (raporlar kısmında adli sağlık kurulu butonuna basılmıştır) kayıt işlemleri bilgileri(TCNo, dosya No diğer bilgiler.)
         * alındıktan sonra hangi rapor ise sorgu yapılıp ilgili tablodan adli sağlık kurulu yol id çekilip bilgiler dosyalar tablosuna gönderiliyor.
         * */
        private void btnIslemiTamamla_Click(object sender, EventArgs e)
        {
            int criminalPath;
            int examinationPath;
            int epicrisisPath;

            var fileNo      = txtFileNumber.Text;
            var sectionId   = int.Parse(cbSurgery.SelectedValue.ToString());
            var date        = monthCalendar.SelectionRange.Start.Date;
            var memberId    = int.Parse(cbFacultyMembers.SelectedValue.ToString());
            var diagnosisId = int.Parse(cbDiagnoses.SelectedValue.ToString());
            var stateId     = int.Parse(cbState.SelectedValue.ToString());

            if (FrmScnr.taramaBittimi == 1)
            {
                //resimAdi = FrmScnr.sillinecekDosya;


                if (secilenEpikriz == 1)
                {
                    if (File.Exists(@"D:\" + klasorTC + "\\" + klasorBolum + "\\" + klasorTarih + "\\epikrizResim"))
                    {
                        resimYolu = @"D:\" + klasorTC + "\\" + klasorBolum + "\\" + klasorTarih + "\\epikrizResim\\";
                    }
                    else
                    {
                        String path = @"D:\" + klasorTC + "\\" + klasorBolum + "\\" + klasorTarih + "\\epikrizResim\\";
                        //yyyy-MM-dd HH-mm-ss
                        if (!File.Exists(path))
                        {
                            System.IO.Directory.CreateDirectory(path);
                        }
                        resimYolu = @"D:\" + klasorTC + "\\" + klasorBolum + "\\" + klasorTarih + "\\epikrizResim\\";
                    }
                }
                //
                else if (secilenAdliSaglik == 1)
                {
                    if (File.Exists(@"D:\" + klasorTC + "\\" + klasorBolum + "\\" + klasorTarih + "\\adliSaglik"))
                    {
                        resimYolu = @"D:\" + klasorTC + "\\" + klasorBolum + "\\" + klasorTarih + "\\adliSaglik\\";
                    }
                    else
                    {
                        Directory.CreateDirectory(@"D:\" + klasorTC + "\\" + klasorBolum + "\\" + klasorTarih + "\\adliSaglik");
                        resimYolu = @"D:\" + klasorTC + "\\" + klasorBolum + "\\" + klasorTarih + "\\adliSaglik\\";
                    }
                }
                else if (secilenTetkikRapor == 1)
                {
                    if (File.Exists(@"D:\" + klasorTC + "\\" + klasorBolum + "\\" + klasorTarih + "\\tetkikRapor"))
                    {
                        resimYolu = @"D:\" + klasorTC + "\\" + klasorBolum + "\\" + klasorTarih + "\\tetkikRapor\\";
                    }
                    else
                    {
                        Directory.CreateDirectory(@"D:\" + klasorTC + "\\" + klasorBolum + "\\" + klasorTarih + "\\tetkikRapor");
                        resimYolu = @"D:\" + klasorTC + "\\" + klasorBolum + "\\" + klasorTarih + "\\tetkikRapor\\";
                    }
                }

                FrmScnr.klasorYolu = resimYolu;

                // resimYolu = FrmScnr.sillinecekDosya;
            }


            if (secilenEpikriz == 1)
            {
                // MessageBox.Show("epikriz");
                EpikrizYol.Persist(resimYolu);
                using (var context = new HospitalAutomationEntities())
                {
                    int query = context.MUAYENEEPIKRIZYOL.Where(p => p.MuayeneEpikrizYolKayit.Contains(resimYolu)).Single().MuayeneEpikrizYolID;
                    epicrisisPath = query;
                }
                var epicrisisId    = int.Parse(cbPatientExaminationEpicrisis.SelectedValue.ToString());
                var criminalYol    = 1;
                var criminalId     = 1;
                var examinationYol = 1;
                var examinationID  = 1;
                PatientDataStoreService.Persist(
                    fileNo, sectionId, date, memberId, diagnosisId, stateId,
                    epicrisisId, epicrisisPath,
                    examinationID, examinationYol,
                    criminalId, criminalYol);
            }
            else if (secilenTetkikRapor == 1)
            {
                //   MessageBox.Show("tetkikrapor");
                TetkikRaporYol.Persist(resimYolu);
                using (var context = new HospitalAutomationEntities())
                {
                    int query = context.TETKIKRAPORYOL.Where(p => p.TetkikRaporYolKayit.Contains(resimYolu)).Single().TetkikRaporYolID;
                    examinationPath = query;
                }
                var examinationId = int.Parse(cbExaminationAndReports.SelectedValue.ToString());
                var epicrisisId   = 1;
                var epikrizYol    = 1;
                var criminalId    = 1;
                var criminalYol   = 1;
                PatientDataStoreService.Persist(
                    fileNo, sectionId, date, memberId, diagnosisId, stateId,
                    epicrisisId, epikrizYol,
                    examinationId, examinationPath,
                    criminalId, criminalYol);
            }
            else if (secilenAdliSaglik == 1)
            {
                // MessageBox.Show("adlisağlık");
                AdliSaglikYol.Persist(resimYolu);
                using (var context = new HospitalAutomationEntities())
                {
                    int query = context.ADLISAGLIKKURULUYOL.Where(p => p.AdliSaglikKuruluYolKayit.Contains(resimYolu)).Single().AdliSaglikKuruluYolID;

                    criminalPath = query;
                }
                var criminalId    = int.Parse(cbCriminalAndMedicalBoard.SelectedValue.ToString());
                var epicrisisId   = 1;
                var epikrizYol    = 1;
                var examinationId = 1;
                var raporYol      = 1;
                PatientDataStoreService.Persist(
                    fileNo, sectionId, date, memberId, diagnosisId, stateId,
                    epicrisisId, epikrizYol,
                    examinationId, raporYol,
                    criminalId, criminalPath);
            }
        }
        private void btnKaydet_Click_1(object sender, EventArgs e)
        {
            int adliYol;
            int adliId;

            int raporYol;
            int raporId;

            int ekiprizYol;
            int ekiprizId;

            //  int tetkikRaporId;

            int bolumId;
            int ogretimGorevlisiID;
            int taniId;
            int statuId = 1;
            var fileNo  = txtDosyaNo.Text; // Dosya Numarası

            using (var context = new HospitalAutomationEntities())
            {
                int query = context.BOLUMLER.Where(p => p.BolumAdi.Contains(txtBolum.Text)).Single().BolumId;
                bolumId = query; // BölümId
            }


            var date = dtpTarih.Value;           // tarih bilgisi

            ogretimGorevlisiID = SelectedDoctor; // ogretim Uyesi
            using (var context = new HospitalAutomationEntities())
            {
                int query = context.TANILAR.Where(p => p.TaniAdi.Contains(txtHastaTanisi.Text)).Single().Taniid;
                taniId = query; // tanı id
            }
            if (rbYatan.Checked)
            {
                using (var context = new HospitalAutomationEntities())
                {
                    int query = context.STATU.Where(p => p.Statu.Contains(rbYatan.Text)).Single().StatuId;
                    statuId = query; // statu id
                }
            }
            else if (rbAyakta.Checked)
            {
                using (var context = new HospitalAutomationEntities())
                {
                    int query = context.STATU.Where(p => p.Statu.Contains(rbAyakta.Text)).Single().StatuId;
                    statuId = query; // statü id
                }
            }

            if (MessageBox.Show(@"Hasta için tüm dosyaları tarattığınıza emin misiniz ?", @"ÖNEMLİ",
                                MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
            {
                string temp = resimYolu + DateTime.Now.ToString("yyyy-MM-dd HHmmss") + ".jpeg";
                image1.Save(temp, ImageFormat.Jpeg); // resim kayıt

                if (tvKayit.SelectedNode.Parent.Text == "Hasta Muayene ve Ekipriz")
                {
                    EpikrizYol.Persist(resimYolu);
                    using (var context = new HospitalAutomationEntities())
                    {
                        int query = context.MUAYENEEPIKRIZYOL.Where(p => p.MuayeneEpikrizYolKayit.Contains(resimYolu)).Single().MuayeneEpikrizYolID;
                        ekiprizYol = query;
                    }
                    using (var context = new HospitalAutomationEntities())
                    {
                        int query = context.MUAYENEEPIKRIZ.Where(p => p.HastaMuayeneEpikriz.Contains(tvKayit.SelectedNode.Text)).Single().Muayeneid;
                        ekiprizId = query;
                    }
                    adliId   = 1;
                    adliYol  = 1;
                    raporYol = 1;
                    raporId  = 1;
                    //   statuId = 1;
                    PatientDataStoreService.Persist(
                        fileNo, bolumId, date, ogretimGorevlisiID, taniId, statuId,
                        ekiprizId, ekiprizYol,
                        raporId, raporYol,
                        adliId, adliYol);
                }


                else if (tvKayit.SelectedNode.Text == "Tetkik ve Raporlar")
                {
                    TetkikRaporYol.Persist(resimYolu);
                    using (var context = new HospitalAutomationEntities())
                    {
                        int query = context.TETKIKRAPORYOL.Where(p => p.TetkikRaporYolKayit.Contains(resimYolu)).Single().TetkikRaporYolID;
                        raporYol = query;
                    }
                    using (var context = new HospitalAutomationEntities())
                    {
                        int query = context.TETKIKRAPORLAR.Where(p => p.TetkikveRapor.Contains(tvKayit.SelectedNode.Text)).Single().TetkikRaporid;
                        raporId = query;
                    }
                    adliYol    = 1;
                    adliId     = 1;
                    ekiprizId  = 1;
                    ekiprizYol = 1;
                    // statuId = 1;
                    PatientDataStoreService.Persist(
                        fileNo, bolumId, date, ogretimGorevlisiID, taniId, statuId,
                        ekiprizId, ekiprizYol,
                        raporId, raporYol,
                        adliId, adliYol);
                }
                else if (tvKayit.SelectedNode.Text == "Adli ve Sağlık Kurulu")
                {
                    AdliSaglikYol.Persist(resimYolu);
                    TetkikRaporYol.Persist(resimYolu);
                    using (var context = new HospitalAutomationEntities())
                    {
                        int query = context.ADLISAGLIKKURULUYOL.Where(p => p.AdliSaglikKuruluYolKayit.Contains(resimYolu)).Single().AdliSaglikKuruluYolID;
                        adliYol = query;
                    }
                    adliId     = 1;
                    ekiprizYol = 1;
                    ekiprizId  = 1;
                    raporYol   = 1;
                    raporId    = 1;
                    //  statuId = 1;
                    PatientDataStoreService.Persist(
                        fileNo, bolumId, date, ogretimGorevlisiID, taniId, statuId,
                        ekiprizId, ekiprizYol,
                        raporId, raporYol,
                        adliId, adliYol);
                }

                if (MessageBox.Show(@"Kayit işlemi başarılı ! Bu hasta için başka bir kayit girmek ister misiniz ?",
                                    @"YENİ KAYIT", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    return;
                }
            }
        }