Exemplo n.º 1
0
        /// <summary>
        /// This method can be used to retrieve the medicines and tests of a diagnosis
        /// </summary>
        /// <param name="diagnosis"></param>
        /// <param name="userObjects"></param>
        /// <returns></returns>
        public bool AddDiagnosisAndRecords(Diagnosis diagnosis, params object[] userObjects)
        {
            using (DbContextTransaction dbTransaction = db.Database.BeginTransaction())
            {
                try
                {
                    db.Diagnosis.Add(diagnosis);
                    int diagnosisId = GetDiagnosisId(diagnosis.AppointmentId);
                    if (userObjects.Length > 0)
                    {
                        if (userObjects[0] != null)
                        {
                            List <MedicineRecord> medicines = (List <MedicineRecord>)userObjects[0];
                            foreach (var medicine in medicines)
                            {
                                MedicineRecord medicineRecord = new MedicineRecord();
                                medicineRecord.MedicineId  = medicine.MedicineId;
                                medicineRecord.DiagnosisId = diagnosisId;
                                medicineRecord.Quantity    = medicine.Quantity;
                                db.MedicineRecord.Add(medicineRecord);
                            }
                        }
                        if (userObjects[1] != null)
                        {
                            var tests = (List <TestRecord>)userObjects[1];
                            foreach (var test in tests)
                            {
                                TestRecord testRecord = new TestRecord();
                                testRecord.TestId      = test.TestId;
                                testRecord.DiagnosisId = diagnosisId;
                                db.TestRecord.Add(testRecord);
                            }
                        }
                    }

                    var appointment = db.Appointment.SingleOrDefault(t => t.Id == diagnosis.AppointmentId);
                    appointment.AppointmentStatusId = (int)ClinicManagementSystemDOL.Enums.AppointmentStatus.Closed;
                    appointment.ModifiedAt          = DateTime.Now;
                    db.SaveChanges();
                    dbTransaction.Commit();
                    return(true);
                }
                catch (Exception e)
                {
                    var ravenClient = new RavenClient("https://[email protected]/1820886");
                    ravenClient.Capture(new SentryEvent(e));
                    dbTransaction.Rollback();
                    return(false);
                }
            }
        }
Exemplo n.º 2
0
        public List <MedicineRecord> ToMedicineList()
        {
            if (Medicines == null)
            {
                return(null);
            }
            List <MedicineRecord> medicinesList = new List <MedicineRecord>();

            for (int i = 0; i < Medicines.Length; i += 4)
            {
                var medicine = new MedicineRecord();
                medicine.MedicineId = addDiagnosisAndRecord.GetMedicineId(Medicines[i]);
                medicine.Quantity   = Int32.Parse(Medicines[i + 1]) * Int32.Parse(Medicines[i + 2]);
                if (medicinesList.FirstOrDefault(t => t.MedicineId == medicine.MedicineId) != null)
                {
                    continue;
                }
                medicinesList.Add(medicine);
            }
            return(medicinesList);
        }