Пример #1
0
        public ParsedData fakeparse(string f)
        {
            if (f.Contains("BS8715"))
            {
                ParsedData p = new ParsedData();


                return(p);
            }
            return(default(ParsedData));
        }
Пример #2
0
        public IEnumerable <ParsedData> generateData(int count)
        {
            List <ParsedData> data = new List <ParsedData>();


            for (int x = 0; x < count; x++)
            {
                ParsedData pd = new ParsedData();
                pd.demographic = generateDemographics();
                pd.hospital    = generateHospital();
                pd.disease     = generateDisease();
                pd.device      = generateDevice();
                pd.care        = generateCare();
                pd.lab         = generateLab();

                pd.exam = new PhysicalExam();
                pd.meds = new Medications();
                pd.proc = new Procedures();

                if (pd.disease.DateOfPrimaryONCDiagnosis < pd.hospital.AdmissionDate)
                {
                    pd.disease.DateOfPrimaryONCDiagnosis = pd.hospital.AdmissionDate;
                }

                if (pd.disease.PrimaryONCDiagnosis == "Acute Myeloid Leukemia")
                {
                    pd.hospital.PICUTransfer = pd.hospital.PICUTransfer || (r.NextDouble() < 0.13);
                    if (pd.hospital.PICUTransfer)
                    {
                        pd.hospital.DateOfPICUTransfer = pd.hospital.AdmissionDate.Value.AddDays(r.Next() % 5);
                    }
                }
                //transfer probabilities
                if (pd.hospital.PICUTransfer)

                {
                    pd.exam.Fever                = r.NextDouble() < 0.9;
                    pd.exam.OxygenRequired       = r.NextDouble() < 0.9;
                    pd.exam.AlteredMentalState   = r.NextDouble() < 0.1;
                    pd.meds.TransfusionInLast24H = r.NextDouble() < 0.5;
                    pd.lab.BloodCultureOrdered   = true;
                    pd.lab.PositiveBloodCulture  = r.NextDouble() < 0.85;
                    if (pd.lab.PositiveBloodCulture)
                    {
                        pd.lab.DateOfPositiveBloodCulture = pd.hospital.DateOfPICUTransfer;
                        pd.lab.ANCPositiveBloodCulture    = 210 - Math.Round(r.NextDouble() * 80);
                    }

                    pd.disease.Relapse       = r.NextDouble() < 0.4;
                    pd.proc.SurgeryInLast24H = r.NextDouble() < 0.25;
                }
                else //normal population
                {
                    pd.exam.Fever                = r.NextDouble() < 0.5;
                    pd.exam.OxygenRequired       = r.NextDouble() < 0.1;
                    pd.exam.AlteredMentalState   = r.NextDouble() < 0.05;
                    pd.meds.TransfusionInLast24H = r.NextDouble() < 0.8;
                    pd.lab.BloodCultureOrdered   = r.NextDouble() < 0.8;
                    if (pd.lab.BloodCultureOrdered)
                    {
                        pd.lab.PositiveBloodCulture = r.NextDouble() < 0.07;
                        if (pd.lab.PositiveBloodCulture)
                        {
                            pd.lab.DateOfPositiveBloodCulture = pd.hospital.DateOfPICUTransfer.HasValue? pd.hospital.DateOfPICUTransfer.Value:
                                                                pd.hospital.AdmissionDate.Value.AddDays(r.Next() % 7);
                            pd.lab.ANCPositiveBloodCulture = 230 - Math.Round(r.NextDouble() * 50);
                        }
                    }
                    pd.disease.Relapse       = r.NextDouble() < 0.2;
                    pd.proc.SurgeryInLast24H = r.NextDouble() < 0.05;
                }

                /*
                 * Diagnosis(AML most likely) - 40, 90
                 * Fever(yes) - 50, 90
                 * Oxygen requirement(yes) - 10, 90
                 * Altered Mental Status(yes) - 5, 10
                 * Received Transfusion within 24 hours - 80, 50
                 * Blood Culture Positive(yes) - 7, 85
                 * Relapse(yes) - 20, 40
                 * ANC(absolute neutrophil  count) < 200 (yes) - 40, 80
                 * Surgery within last 24 hours(yes) - 5, 25
                 */


                data.Add(pd);
            }


            return(data);
        }