private void ButtonCheckExpression_Click(object sender, RoutedEventArgs e) { EvaluationContext evalContext; var inputNav = GetResourceNavigator(out evalContext); if (inputNav == null) { return; } // Don't need to cache this, it is cached in the fhir-client Hl7.FhirPath.Expressions.Expression expr = null; try { expr = FhirPathProcessor._compiler.Parse(textboxExpression.Text); } catch (Exception ex) { SetResults("Expression compilation error:\r\n" + ex.Message, true); return; } if (expr != null) { try { FhirPathProcessor.CheckExpression(inputNav, expr, AppendResults, ResetResults); } catch (Exception ex) { SetResults("Expression Check error:\r\n" + ex.Message, true); return; } } }
private ITypedElement GetResourceNavigator(out EvaluationContext evalContext) { string parseErrors2; var inputNavDSTU2 = FhirPathProcessor.GetResourceNavigatorDSTU2(textboxInputXML.Text, out parseErrors2); string parseErrors3; var inputNavSTU3 = FhirPathProcessor.GetResourceNavigatorSTU3(textboxInputXML.Text, out parseErrors3); string parseErrors4; var inputNavR4 = FhirPathProcessor.GetResourceNavigatorR4(textboxInputXML.Text, out parseErrors4); if (!string.IsNullOrEmpty(parseErrors2) || !string.IsNullOrEmpty(parseErrors3) || !string.IsNullOrEmpty(parseErrors4)) { ResetResults(); textboxResult.AppendText(String.Join("\r\n--------------------\r\n", parseErrors2, parseErrors3, parseErrors4)); } if (inputNavR4 != null) { labelR4.Visibility = Visibility.Visible; } else { labelR4.Visibility = Visibility.Collapsed; } if (inputNavSTU3 != null) { labelSTU3.Visibility = Visibility.Visible; } else { labelSTU3.Visibility = Visibility.Collapsed; } if (inputNavDSTU2 != null) { labelDSTU2.Visibility = Visibility.Visible; } else { labelDSTU2.Visibility = Visibility.Collapsed; } if (inputNavR4 != null) { evalContext = new fp4.FhirEvaluationContext(inputNavR4); return(inputNavSTU3); } if (inputNavSTU3 != null) { evalContext = new fp3.FhirEvaluationContext(inputNavSTU3); return(inputNavSTU3); } evalContext = new fp2.FhirEvaluationContext(inputNavDSTU2); return(inputNavDSTU2); }
private void ButtonGo_Click(object sender, RoutedEventArgs e) { EvaluationContext evalContext; var inputNav = GetResourceNavigator(out evalContext); if (inputNav == null) { return; } // Don't need to cache this, it is cached in the fhir-client CompiledExpression xps = null; try { xps = FhirPathProcessor._compiler.Compile(textboxExpression.Text); } catch (Exception ex) { SetResults("Expression compilation error:\r\n" + ex.Message); return; } IEnumerable <ITypedElement> prepopulatedValues = null; if (xps != null) { try { prepopulatedValues = xps(inputNav, evalContext); } catch (Exception ex) { SetResults("Expression evaluation error:\r\n" + ex.Message); AppendParseTree(); return; } ResetResults(); try { FhirPathProcessor.ProcessPrepopulatedValues(prepopulatedValues, AppendXmlFramentResults, AppendResults); } catch (Exception ex) { SetResults("Processing results error:\r\n" + ex.Message); return; } } AppendParseTree(); }
private void lblJson_MouseUp(object sender, MouseButtonEventArgs e) { FhirPathProcessor.PretifyJson(textboxInputXML.Text, (val) => { textboxInputXML.Text = val; }); }