public override bool Examine(Patient patient, PatientExamResults results)
        {
            Dictionary <LungLobeLocation, LungBreathSounds> outputLocation = (_targetLeftLung) ? results.RespiratorySystem.LeftLung.BreathSounds : results.RespiratorySystem.RightLung.BreathSounds;
            Lung targetLung;

            //Lung targetLung = (_targetLeftLung) ? patient.Body.Chest.Lungs.LeftLung : patient.Body.Chest.Lungs.RightLung; //Apparently this doesnt work in C# 8.0 (need 9.0 and above)
            if (_targetLeftLung)
            {
                targetLung = patient.Body.Chest.Lungs.LeftLung;
            }
            else
            {
                targetLung = patient.Body.Chest.Lungs.RightLung;;
            }

            if (!targetLung.IsPresent || patient.Body.Chest.Lungs.RespiratoryRate == 0) //LUXURY: Perhaps have a way of setting how long the player listens for and check if breaths are likely to be heard in that time frame? Maybe too mean
            {
                outputLocation[_targetLobe] = LungBreathSounds.None;
            }
            else
            {
                outputLocation[_targetLobe] = targetLung.Lobes[_targetLobe].BreathSounds;
            }

            return(true);
        }
예제 #2
0
        //Lumbar Puncture. Pain and greater risk of causing CNS infection, High chance to fail
        public override bool Perform(Patient patient, PatientExamResults results, out bool Succeeded)
        {
            Succeeded = false;

            /*
             * if(reasonYouCantPerform)
             *  return false;
             */

            WasteProduced = DefaultWasteProduction.PerformLumbarPuncture;

            if (patient.MagicRandomSeed > DefaultPlayerStatsTEMP.PerformLumbarPunctureSuccess)
            {
                patient.Flags.hasCSFSample = true;
                Succeeded = true;
                ExamineCSF examineCSF = new ExamineCSF();
                examineCSF.Examine(patient, results);
                WasteProduced += examineCSF.WasteProduced;
            }

            if (patient.MagicRandomSeed > DefaultInfectionValues.PerformLumbarPuncture)
            {
                patient.Body.Infections.Head.Brain.Infect(new Infection());
            }
            return(true);
        }
        public override bool Examine(Patient patient, PatientExamResults results)
        {
            _patient = patient;
            _results = results;

            switch (_target)
            {
            case BodyRegion.None:
                return(false);

            case BodyRegion.Head:
                XRayHead();
                break;

            case BodyRegion.Chest:
                XRayChest();
                break;

            case BodyRegion.Abdomen:
                XRayAbdomen();
                break;

            case BodyRegion.LeftArm:
            case BodyRegion.RightArm:
            case BodyRegion.LeftLeg:
            case BodyRegion.RightLeg:
                XRayLimb(_target);
                break;

            default:
                throw new ArgumentException($"GetXRay::Examine Unhandled BodyRegion: {nameof(_target)}");
            }
            return(true);
        }
        public override bool Examine(Patient patient, PatientExamResults results)
        {
            Dictionary <LungLobeLocation, LungPrecussionSounds> outputLocation = (_targetLeftLung) ? results.RespiratorySystem.LeftLung.PrecussionSounds : results.RespiratorySystem.RightLung.PrecussionSounds;
            Lung targetLung;

            if (_targetLeftLung)
            {
                targetLung = patient.Body.Chest.Lungs.LeftLung;
            }
            else
            {
                targetLung = patient.Body.Chest.Lungs.RightLung;;
            }

            if (!targetLung.IsPresent)
            {
                outputLocation[_targetLobe] = LungPrecussionSounds.Hyperresonant;
            }
            else
            {
                outputLocation[_targetLobe] = targetLung.Lobes[_targetLobe].PrecussionSounds;
            }

            return(true);
        }
        public override bool Examine(Patient patient, PatientExamResults results)
        {
            if (_isLeft)
            {
                if (patient.Body.Abdomen.UrinaryTract.LeftKidney.OrganState == OrganState.Removed)
                {
                    results.UrinaryTract.LeftKidney.IsRemoved = true;
                    return(true);
                }

                results.UrinaryTract.LeftKidney.IsRemoved       = false;
                results.UrinaryTract.LeftKidney.HasStones       = patient.Body.Abdomen.UrinaryTract.LeftKidney.HasStone;
                results.UrinaryTract.LeftKidney.IsUreterBlocked = patient.Body.Abdomen.UrinaryTract.LeftKidney.IsUreterBlocked;
                results.UrinaryTract.LeftKidney.Infection       = patient.Body.Infections.Abdomen.LeftKidney.Severity;
            }
            else
            {
                if (patient.Body.Abdomen.UrinaryTract.RightKidney.OrganState == OrganState.Removed)
                {
                    results.UrinaryTract.RightKidney.IsRemoved = true;
                    return(true);
                }

                results.UrinaryTract.RightKidney.IsRemoved       = false;
                results.UrinaryTract.RightKidney.HasStones       = patient.Body.Abdomen.UrinaryTract.RightKidney.HasStone;
                results.UrinaryTract.RightKidney.IsUreterBlocked = patient.Body.Abdomen.UrinaryTract.RightKidney.IsUreterBlocked;
                results.UrinaryTract.RightKidney.Infection       = patient.Body.Infections.Abdomen.RightKidney.Severity;
            }
            return(true);
        }//REVIEW: There is probably a more succinct way of doing this
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     if (!CheckForIVAccess(patient))
     {
         return(false);
     }
     throw new NotImplementedException();
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     results.Brain.isIschaemic = patient.Body.Head.Brain.IsIschaemic; //Eventually replace with Vessels related stuff
     //results.Brain.isBleeding = patient.Body.Head.Brain.IsBleeding;
     results.Brain.currentPressure = patient.Body.Head.Brain.CurrentPressure;
     results.Brain.currentInfection.InfectionLevel = patient.Body.Infections.Head.Brain.InfectionLevel;
     return(true);
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     results.UrinaryTract.Bladder.CurrentBladderVolume = patient.Body.Abdomen.UrinaryTract.Bladder.CurrentVolume;
     results.UrinaryTract.Bladder.HasStones            = patient.Body.Abdomen.UrinaryTract.Bladder.HasStones;
     results.UrinaryTract.Bladder.IsUrethraBlocked     = patient.Body.Abdomen.UrinaryTract.Bladder.IsUrethraBlocked;
     results.AccessPoints.UrinaryCatheter.IsInserted   = patient.AccessPoints.UrinaryCatheter.IsInserted;
     //REVIEW: Does BladderScan need anything else?
     return(true);
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     if (!patient.AccessPoints.UrinaryCatheter.IsInserted || patient.Body.Abdomen.UrinaryTract.Bladder.IsUrethraBlocked)
     {
         return(false);
     }
     //Update results a urine sample result
     return(true);
 }
        public override bool Examine(Patient patient, PatientExamResults results)
        {
            results.Heart.BeatsPerMinute = patient.Body.Chest.Heart.BeatsPerMinute;
            results.Heart.HasPacemaker   = patient.Body.Chest.Heart.HasPaceMaker;
            results.Heart.IsArrythmic    = patient.Body.Chest.Heart.IsArrythmic;
            results.Heart.IsBeating      = patient.Body.Chest.Heart.IsBeating;

            return(true);
        }
        public override bool Examine(Patient patient, PatientExamResults results)
        {
            if (!CheckForIVAccess(patient))
            {
                return(false);
            }

            results.Blood.BloodType = patient.Body.Blood.bloodType;
            return(true);
        }
        public override bool Examine(Patient patient, PatientExamResults results)
        {
            if (!CheckForIVAccess(patient))
            {
                return(false);
            }

            results.Blood.ClottingFactors = patient.Body.Blood.FluidProfile.ClottingFactor;
            return(true);
        }
        public override bool Examine(Patient patient, PatientExamResults results)
        {
            if (!patient.Flags.hasCSFSample)
            {
                return(false);
            }

            results.Brain.CSF = patient.Body.Head.Brain.CSF;
            return(true);
        }
        public override bool Examine(Patient patient, PatientExamResults results)
        {
            new ExamineLungsPrecussLungLobe(_targetLeftLung, LungLobeLocation.Upper).Examine(patient, results);
            if (!_targetLeftLung)
            {
                new ExamineLungsPrecussLungLobe(_targetLeftLung, LungLobeLocation.Middle).Examine(patient, results);
            }
            new ExamineLungsPrecussLungLobe(_targetLeftLung, LungLobeLocation.Lower).Examine(patient, results);

            return(true);
        }
        public override bool Examine(Patient patient, PatientExamResults results)
        {
            if (!patient.AccessPoints.ArtificialAirway.IsInserted)
            {
                return(false);
            }

            results.AccessPoints.ArtificialAirway.IsBlocked = patient.AccessPoints.ArtificialAirway.IsBlocked;
            results.AccessPoints.ArtificialAirway.Infection = patient.Body.Infections.AccessPoints.ArtificialAirway.Severity;
            return(true);
        }
        public override bool Examine(Patient patient, PatientExamResults results)
        {
            //results.Heart.Echocardiogram.Septum = patient.Body.Chest.Heart.HeartStructures.Tissues.Septum;
            //results.Heart.Echocardiogram.LeftAnteriorWall = patient.Body.Chest.Heart.HeartStructures.Tissues.LeftAnteriorWall;
            //results.Heart.Echocardiogram.LeftPosteriorInferiorWall = patient.Body.Chest.Heart.HeartStructures.Tissues.LeftPosteriorInferiorWall;
            //results.Heart.Echocardiogram.FreeWall = patient.Body.Chest.Heart.HeartStructures.Tissues.FreeWall;
            //results.Heart.Echocardiogram.RightVentricle = patient.Body.Chest.Heart.HeartStructures.Tissues.RightVentricle;

            results.Heart.HeartSize = patient.Body.Chest.Heart.HeartSize;

            return(true);
        }
        public override bool Examine(Patient patient, PatientExamResults results)
        {
            //Left Coronary Arteries
            results.Heart.Angiogram.LeftCoronaryArtery.VesselState           = patient.Body.VascularSystem.OxygenatedVessels["LeftCoronary"].VesselState;
            results.Heart.Angiogram.LeftAnteriorDescendingArtery.VesselState = patient.Body.VascularSystem.OxygenatedVessels["LeftAnteriorDescending"].VesselState;
            results.Heart.Angiogram.CirumflexArtery.VesselState = patient.Body.VascularSystem.OxygenatedVessels["Circumflex"].VesselState;

            //Right Coronary Arteries
            results.Heart.Angiogram.RightCoronaryArtery.VesselState = patient.Body.VascularSystem.OxygenatedVessels["RightCoronary"].VesselState;

            return(true);
        }
        public override bool Examine(Patient patient, PatientExamResults results)
        {
            if (!CheckForIVAccess(patient))
            {
                return(false);
            }

            //LIVER DAMAGE MARKERS:
            //ALT - Liver Inflammation (Infection marker)
            //ALP - Bile duct (Gallstones causing blockage)
            //AST - May not bother with this one
            //GGT - Bile Duct related (Probably not needed)

            //LIVER SYNTHETIC FUNCTIONING
            //Albumin - Blood Protein Levels
            //Billirubin
            //Prothrombin Time

            return(true);
        }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     results.Vitals.BloodPressure = patient.Body.Blood.Volume / patient.Body.Blood._defaultBloodSystemVolume; //TODO: Setup BloodPressure calc
     return(true);
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     results.Vitals.RespiratoryRate = patient.Body.Chest.Lungs.RespiratoryRate;
     return(true);
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     results.Vitals.HeartRate = patient.Body.Chest.Heart.BeatsPerMinute;
     return(true);
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     //This should return an average picture of the lungs infection state. Perhaps just give the most dominant infection
     throw new NotImplementedException();
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     //results.Vitals.OxygenSaturation = patient.Body.Chest.Lungs.OxygenSaturation; //Replace with a call to BloodSystem.OxygenSaturation not Lungs
     return(true);
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     //This should return a picture of the specific target lobe's infection state
     throw new NotImplementedException();
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     new ExamineKidneyScan(true).Examine(patient, results);
     new ExamineKidneyScan(false).Examine(patient, results);
     return(true);
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     new ExamineKidneysScan().Examine(patient, results);
     new ExamineBladderScan().Examine(patient, results);
     return(true);
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     //Check Liver and Pancreas for stones
     return(true);
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     results.Brain.isBrainDead = patient.Body.Head.Brain.IsBrainDead;
     results.Brain.isSeizing   = patient.Body.Head.Brain.IsSeizing;
     return(true);
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     new ExamineLungsPrecussLung(true).Examine(patient, results);
     new ExamineLungsPrecussLung(false).Examine(patient, results);
     return(true);
 }
 public override bool Examine(Patient patient, PatientExamResults results)
 {
     results.Vitals.BodyTemperature = patient.Body.BodyTemperature;
     return(true);
 }