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); }
//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); }