public static FmsMovementData Build( FmsMovementPattern movementPattern, Laterality laterality, int rawScore, FmsClearanceTest clearance) { return(new FmsMovementData(movementPattern, laterality, rawScore, clearance)); }
private FmsMovementData( FmsMovementPattern movementPattern, Laterality laterality, int rawScore, FmsClearanceTest clearance) { MovementPattern = movementPattern; RawScore = ValidateAndSetRawScore(rawScore); Clearance = MovementHasClearanceTest ? clearance : FmsClearanceTest.NotApplicable; Laterality = MovementHasUnilateralLaterality ? laterality : Laterality.Bilateral; }
public override int GetHashCode() { unchecked { int hashCode = (NodalStatus != null ? NodalStatus.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Laterality != null ? Laterality.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (TumorSize != null ? TumorSize.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (BiopsyType != null ? BiopsyType.GetHashCode() : 0); hashCode = (hashCode * 397) ^ IsDeleted.GetHashCode(); return(hashCode); } }
public CarotidUltrasoundClassificationResult( CarotidUltrasound carotidUltrasound, Laterality laterality, Laterality worseSide, CarotidPercentStenosisGrade grade, CarotidPlaqueCharacter character) { CarotidUltrasound = carotidUltrasound; WorseSide = worseSide; Grade = grade; Character = character; Laterality = laterality; }
public void Classification_GivenOneWorseSide_ReturnsCorrectLateralityAndClassification(int leftVal, int rightVal, Laterality expectedLaterality, HearingLoss expectedHearingLoss) { var leftSet = new AudiogramDatasetBuilder() .Set500HertzDataPoint(leftVal) .Build(); var rightSet = new AudiogramDatasetBuilder() .Set1000HertzDataPoint(rightVal) .Build(); var result = new AudiogramClassification(Audiogram.Build(leftSet, rightSet)).Classification; Assert.Equal(expectedLaterality, result.Laterality); Assert.Equal(expectedHearingLoss, result.Classification); }
public AudiogramClassificationResult(HearingLoss classification, Laterality laterality, Laterality worseSide) { Classification = classification; Laterality = laterality; WorseSide = worseSide; }
/// <summary> /// Serialize to a JSON object /// </summary> public new void SerializeJson(Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true) { if (includeStartObject) { writer.WriteStartObject(); } ((Fhir.R4.Models.BackboneElement) this).SerializeJson(writer, options, false); if (!string.IsNullOrEmpty(Uid)) { writer.WriteString("uid", (string)Uid !); } if (_Uid != null) { writer.WritePropertyName("_uid"); _Uid.SerializeJson(writer, options); } if (Number != null) { writer.WriteNumber("number", (uint)Number !); } if (Modality != null) { writer.WritePropertyName("modality"); Modality.SerializeJson(writer, options); } if (!string.IsNullOrEmpty(Description)) { writer.WriteString("description", (string)Description !); } if (_Description != null) { writer.WritePropertyName("_description"); _Description.SerializeJson(writer, options); } if (NumberOfInstances != null) { writer.WriteNumber("numberOfInstances", (uint)NumberOfInstances !); } if ((Endpoint != null) && (Endpoint.Count != 0)) { writer.WritePropertyName("endpoint"); writer.WriteStartArray(); foreach (Reference valEndpoint in Endpoint) { valEndpoint.SerializeJson(writer, options, true); } writer.WriteEndArray(); } if (BodySite != null) { writer.WritePropertyName("bodySite"); BodySite.SerializeJson(writer, options); } if (Laterality != null) { writer.WritePropertyName("laterality"); Laterality.SerializeJson(writer, options); } if ((Specimen != null) && (Specimen.Count != 0)) { writer.WritePropertyName("specimen"); writer.WriteStartArray(); foreach (Reference valSpecimen in Specimen) { valSpecimen.SerializeJson(writer, options, true); } writer.WriteEndArray(); } if (!string.IsNullOrEmpty(Started)) { writer.WriteString("started", (string)Started !); } if (_Started != null) { writer.WritePropertyName("_started"); _Started.SerializeJson(writer, options); } if ((Performer != null) && (Performer.Count != 0)) { writer.WritePropertyName("performer"); writer.WriteStartArray(); foreach (ImagingStudySeriesPerformer valPerformer in Performer) { valPerformer.SerializeJson(writer, options, true); } writer.WriteEndArray(); } if ((Instance != null) && (Instance.Count != 0)) { writer.WritePropertyName("instance"); writer.WriteStartArray(); foreach (ImagingStudySeriesInstance valInstance in Instance) { valInstance.SerializeJson(writer, options, true); } writer.WriteEndArray(); } if (includeStartObject) { writer.WriteEndObject(); } }
//TODO: Abstract CaptureResult so it will work with any fingerprint scanner. private void OnCaptured(CaptureResult captureResult) { browser.GetMainFrame().ExecuteJavaScriptAsync("showPleaseWait();"); //mark schroeder20170703 if (PatientBridge.cannotCaptureLeftFingerprint == true) { Laterality = FHIRUtilities.LateralitySnoMedCode.Right; } if (currentCaptureInProcess == false) { if ((PatientBridge.hasValidLeftFingerprint == true && Laterality == FHIRUtilities.LateralitySnoMedCode.Left) || (PatientBridge.hasValidRightFingerprint == true && Laterality == FHIRUtilities.LateralitySnoMedCode.Right)) { //mark schroeder 20170701 do not capture more left fingerprints if left is set. Same for right return; } else { try { //mark schroeder 20170701 use this to stop more capture attempts while processing. Added to below if statememt currentCaptureInProcess = true; maxFingerprintScanAttempts = Convert.ToInt16(System.Configuration.ConfigurationManager.AppSettings["maxFingerprintScanAttempts"].ToString()); fingerprintScanAttempts++; } catch (Exception ex) { MessageBox.Show(ex.Message); return; } if (_patientBridge.captureSite != FHIRUtilities.CaptureSiteSnoMedCode.Unknown && _patientBridge.laterality != FHIRUtilities.LateralitySnoMedCode.Unknown) { if (fingerprintScanAttempts <= maxFingerprintScanAttempts) { #if NAVIGATE DisplayOutput("Captured finger image...."); #endif // Check capture quality and throw an error if poor or incomplete capture. if (!biometricDevice.CheckCaptureResult(captureResult)) { return; } Constants.CaptureQuality quality = captureResult.Quality; if ((int)quality != 0) { //call javascript to inform UI that the capture quality was too low to accept. #if NAVIGATE DisplayOutput("Fingerprint quality was too low to accept. Quality = " + quality.ToString()); #endif return; } Type captureResultType = captureResult.GetType(); string deviceClassName = captureResultType.ToString(); string deviceName = ""; if (deviceClassName == "DPUruNet.CaptureResult") { deviceName = "DigitalPersona U.Are.U 4500"; } SourceAFIS.Simple.Person currentCapture = new SourceAFIS.Simple.Person(); Fingerprint newFingerPrint = new Fingerprint(); foreach (Fid.Fiv fiv in captureResult.Data.Views) { newFingerPrint.AsBitmap = ImageUtilities.CreateBitmap(fiv.RawImage, fiv.Width, fiv.Height); } currentCapture.Fingerprints.Add(newFingerPrint); Afis.Extract(currentCapture); Template tmpCurrent = newFingerPrint.GetTemplate(); if (_minutiaCaptureController.MatchFound == false) { if (_minutiaCaptureController.AddMinutiaTemplateProbe(tmpCurrent) == true) { // Good pair found. Query web service for a match. FingerPrintMinutias newFingerPrintMinutias = new FingerPrintMinutias (SessionID, _minutiaCaptureController.BestTemplate1, Laterality, CaptureSite); PatientBridge.PatientFHIRProfile.AddFingerPrint(newFingerPrintMinutias, deviceName, _minutiaCaptureController.BestTemplate1.OriginalDpi, _minutiaCaptureController.BestTemplate1.OriginalHeight, _minutiaCaptureController.BestTemplate1.OriginalWidth); newFingerPrintMinutias = new FingerPrintMinutias (SessionID, _minutiaCaptureController.BestTemplate2, Laterality, CaptureSite); PatientBridge.PatientFHIRProfile.AddFingerPrint(newFingerPrintMinutias, deviceName, _minutiaCaptureController.BestTemplate2.OriginalDpi, _minutiaCaptureController.BestTemplate2.OriginalHeight, _minutiaCaptureController.BestTemplate2.OriginalWidth); Media media = PatientBridge.PatientFHIRProfile.FingerPrintFHIRMedia(newFingerPrintMinutias, deviceName, tmpCurrent.OriginalDpi, tmpCurrent.OriginalHeight, tmpCurrent.OriginalWidth); // TODO: REMOVE THIS LINE! ONLY FOR TESTING //FHIRUtilities.SaveJSONFile(media, @"C:\JSONTest"); HttpsClient dataTransport = new HttpsClient(); Authentication auth; if (Utilities.Auth == null) { auth = SecurityUtilities.GetAuthentication(NoIDServiceName); } else { auth = Utilities.Auth; } PatientBridge.fhirAddress = new Uri(SearchBiometricsUri); dataTransport.SendFHIRMediaProfile(PatientBridge.fhirAddress, auth, media); string lateralityString = FHIRUtilities.LateralityToString(Laterality); string captureSiteString = FHIRUtilities.CaptureSiteToString(CaptureSite); #if NAVIGATE string output = lateralityString + " " + captureSiteString + " fingerprint accepted. Score = " + _minutiaCaptureController.BestScore + ", Fingerprint sent to server: Response = " + dataTransport.ResponseText; DisplayOutput(output); #endif if (dataTransport.ResponseText.ToLower().Contains("error") == true || dataTransport.ResponseText.ToLower().Contains("index") == true) { string message = "Critical Identity Error Occured In Fingerprint Capture method. Please contact your adminstrator: " + dataTransport.ResponseText + " Error code = 909"; MessageBox.Show(message); browser.GetMainFrame().ExecuteJavaScriptAsync("pageRefresh();"); return; } if (dataTransport.ResponseText.ToLower().Contains(@"noid://") == true) { // Match found, inform JavaScript that this is an returning patient for Identity. PatientBridge.PatientFHIRProfile.LocalNoID = dataTransport.ResponseText; //save the localNoID PatientBridge.PatientFHIRProfile.NoIDStatus = "Pending"; browser.GetMainFrame().ExecuteJavaScriptAsync("showIdentity('" + PatientBridge.PatientFHIRProfile.LocalNoID + "');"); } else if (dataTransport.ResponseText.ToLower() == "pending") { MessageBox.Show("You are already checked in. If you believe this is an error, please contact staff"); browser.GetMainFrame().ExecuteJavaScriptAsync("pageRefresh();"); return; } else { if (PatientBridge.hasValidLeftFingerprint == true) { if (MatchLeftAndRight() == true) { MessageBox.Show("Both right and left capture sites are the same. Please start over."); browser.GetMainFrame().ExecuteJavaScriptAsync("pageRefresh();"); return; } } // Match not found, inform JavaScript the capture pair is complete and the patient can move to the next step. browser.GetMainFrame().ExecuteJavaScriptAsync("showComplete('" + Laterality.ToString() + "');"); if (Laterality == FHIRUtilities.LateralitySnoMedCode.Left) { Laterality = FHIRUtilities.LateralitySnoMedCode.Right; CaptureSite = FHIRUtilities.CaptureSiteSnoMedCode.IndexFinger; _firstMinutiaCaptureController = _minutiaCaptureController; _minutiaCaptureController = new MinutiaCaptureController(_minimumAcceptedMatchScore); PatientBridge.hasValidLeftFingerprint = true; } else if (Laterality == FHIRUtilities.LateralitySnoMedCode.Right) { Laterality = FHIRUtilities.LateralitySnoMedCode.Unknown; CaptureSite = FHIRUtilities.CaptureSiteSnoMedCode.Unknown; PatientBridge.hasValidRightFingerprint = true; } fingerprintScanAttempts = 0; //reset scan attempt count on successful scan } } else { // Good fingerprint pairs not found yet. inform JavaScript to promt the patient to try again. browser.GetMainFrame().ExecuteJavaScriptAsync("showFail('" + Laterality.ToString() + "');"); #if NAVIGATE DisplayOutput("Fingerprint NOT accepted. Score = " + _minutiaCaptureController.BestScore); #endif currentCaptureInProcess = false; return; } } } else { //int testy = CaptureSite.ToString().IndexOf("Thumb"); if (CaptureSite.ToString().IndexOf("Thumb") == -1) { browser.GetMainFrame().ExecuteJavaScriptAsync("alert('You have exceeded the maximum allowed scan attempts for your " + Laterality.ToString() + " " + CaptureSite + " Lets try another finger.');"); } fingerprintScanAttempts = 0; //reset scan attempt count on successful scan //get next laterality and capture site. Order of precedence is left, then right. Index, middle, ring, little, thumb switch (Laterality.ToString() + CaptureSite.ToString()) { case "LeftIndexFinger": attemptedScannedFingers.Add(Laterality.ToString() + CaptureSite.ToString()); browser.GetMainFrame().ExecuteJavaScriptAsync("setLateralitySite('selectLeftMiddle');"); CaptureSite = FHIRUtilities.CaptureSiteSnoMedCode.MiddleFinger; Laterality = FHIRUtilities.LateralitySnoMedCode.Left; break; case "LeftMiddleFinger": attemptedScannedFingers.Add(Laterality.ToString() + CaptureSite.ToString()); browser.GetMainFrame().ExecuteJavaScriptAsync("setLateralitySite('selectLeftRing');"); CaptureSite = FHIRUtilities.CaptureSiteSnoMedCode.RingFinger; Laterality = FHIRUtilities.LateralitySnoMedCode.Left; break; case "LeftRingFinger": attemptedScannedFingers.Add(Laterality.ToString() + CaptureSite.ToString()); browser.GetMainFrame().ExecuteJavaScriptAsync("setLateralitySite('selectLeftLittle');"); CaptureSite = FHIRUtilities.CaptureSiteSnoMedCode.LittleFinger; Laterality = FHIRUtilities.LateralitySnoMedCode.Left; break; case "LeftLittleFinger": attemptedScannedFingers.Add(Laterality.ToString() + CaptureSite.ToString()); browser.GetMainFrame().ExecuteJavaScriptAsync("setLateralitySite('selectLeftThumb');"); CaptureSite = FHIRUtilities.CaptureSiteSnoMedCode.Thumb; Laterality = FHIRUtilities.LateralitySnoMedCode.Left; break; case "LeftThumb": attemptedScannedFingers.Add(Laterality.ToString() + CaptureSite.ToString()); browser.GetMainFrame().ExecuteJavaScriptAsync("moveToRightHandScan();"); CaptureSite = FHIRUtilities.CaptureSiteSnoMedCode.IndexFinger; Laterality = FHIRUtilities.LateralitySnoMedCode.Right; hasLeftFingerprintScan = false; break; case "RightIndexFinger": hasLeftFingerprintScan = _patientBridge.hasValidLeftFingerprint; attemptedScannedFingers.Add(Laterality.ToString() + CaptureSite.ToString()); browser.GetMainFrame().ExecuteJavaScriptAsync("setLateralitySite('selectRightMiddle');"); CaptureSite = FHIRUtilities.CaptureSiteSnoMedCode.MiddleFinger; Laterality = FHIRUtilities.LateralitySnoMedCode.Right; break; case "RightMiddleFinger": attemptedScannedFingers.Add(Laterality.ToString() + CaptureSite.ToString()); browser.GetMainFrame().ExecuteJavaScriptAsync("setLateralitySite('selectRightRing');"); CaptureSite = FHIRUtilities.CaptureSiteSnoMedCode.RingFinger; Laterality = FHIRUtilities.LateralitySnoMedCode.Right; break; case "RightRingFinger": attemptedScannedFingers.Add(Laterality.ToString() + CaptureSite.ToString()); browser.GetMainFrame().ExecuteJavaScriptAsync("setLateralitySite('selectRightLittle');"); CaptureSite = FHIRUtilities.CaptureSiteSnoMedCode.LittleFinger; Laterality = FHIRUtilities.LateralitySnoMedCode.Right; break; case "RightLittleFinger": attemptedScannedFingers.Add(Laterality.ToString() + CaptureSite.ToString()); browser.GetMainFrame().ExecuteJavaScriptAsync("setLateralitySite('selectRightThumb');"); CaptureSite = FHIRUtilities.CaptureSiteSnoMedCode.Thumb; Laterality = FHIRUtilities.LateralitySnoMedCode.Right; break; case "RightThumb": attemptedScannedFingers.Add(Laterality.ToString() + CaptureSite.ToString()); hasRightFingerprintScan = false; _minutiaCaptureController = null; if (hasLeftFingerprintScan == false) { _firstMinutiaCaptureController = null; } CaptureSite = FHIRUtilities.CaptureSiteSnoMedCode.Unknown; Laterality = FHIRUtilities.LateralitySnoMedCode.Unknown; browser.GetMainFrame().ExecuteJavaScriptAsync("clickNoRightHandFingerPrint();"); break; default: break; } //define walk through fingers and ability to override } } else { if (hasLeftFingerprintScan == true && hasRightFingerprintScan == true) { browser.GetMainFrame().ExecuteJavaScriptAsync("alert('You have successfully completed this step. Please proceed to the next page by clicking the NEXT button below');"); } else { browser.GetMainFrame().ExecuteJavaScriptAsync("alert('Must be on the correct page to accept a fingerprint scan. Please follow the instructions on the screen.');"); } #if NAVIGATE DisplayOutput("Must be on the correct page to accept a fingerprint scan."); #endif } currentCaptureInProcess = false; } } else { browser.GetMainFrame().ExecuteJavaScriptAsync("alert('Current Scan In Process. Please wait and follow the on screen instructions.');"); } }