Example #1
0
        public AntibioticPerson AntibioticDepartmentPerson(DateTime startTime, DateTime endTime)
        {
            var     result           = new AntibioticPerson();
            decimal preStartTimeCost = 0M;
            decimal preEndTimeCost   = 0M;

            result.DepartmentID = (int)this.Origin_DEPT_ID;
            if (this.OutDate.HasValue && this.OutDate.Value >= startTime)
            {
                //outDate在取定时间段内的情况
                preEndTimeCost = this.InPatientDrugRecords.Sum(g => g.AntibioticCost(this.InDate, endTime));
            }
            else if (this.OutDate.HasValue && this.OutDate.Value < startTime)
            {
                //outDate在startTime之间的情况
                preStartTimeCost = this.InPatientDrugRecords.Sum(g => g.AntibioticCost(this.InDate, startTime));
                preEndTimeCost   = this.InPatientDrugRecords.Sum(g => g.AntibioticCost(this.InDate, endTime));
            }
            if (preStartTimeCost > 0 && preEndTimeCost == 0)
            {
                result.AntibioticPatientNumber = -1;
            }
            else if (preStartTimeCost == 0 && preEndTimeCost > 0)
            {
                result.AntibioticPatientNumber = 1;
            }
            else
            {
                result.AntibioticPatientNumber = 0;
            }
            return(result);
        }
        private AntibioticPerson GetAntibioticPerson(DateTime startTime, DateTime endTime, InPatient inPatient)
        {
            var result = new AntibioticPerson();
            PhMS2dot1DomainContext context = new PhMS2dot1DomainContext();

            var inPatientDrugRecords = new List <InPatientDrugRecord>();
            var drugRecords          = context.InPatientDrugRecords.Where(a => a.InPatientID == inPatient.InPatientID).ToList();

            foreach (var drugRecord in drugRecords)
            {
                var drugFees = context.DrugFees.Where(a => a.InPatientDrugRecordID == drugRecord.InPatientDrugRecordID && a.ChargeTime >= startTime && a.ChargeTime < endTime).ToList();
                drugRecord.DrugFees = drugFees;
                inPatientDrugRecords.Add(drugRecord);
            }
            context.Dispose();

            inPatient.InPatientDrugRecords = inPatientDrugRecords;
            //计算出当前inPatient中AntibioticPerson
            result = inPatient.AntibioticDepartmentPerson(startTime, endTime);
            return(result);
        }