public MainWindow() { // Init _openAthletes = new ObservableCollection <Athlete>(); InitializeComponent(); // Set culture CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("pt-PT"); CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("pt-PT"); BindingOperations.GetBinding(MinDateRange, DatePicker.SelectedDateProperty)?.ValidationRules.Add(SliderRange.MinDateValidator); BindingOperations.GetBinding(MaxDateRange, DatePicker.SelectedDateProperty)?.ValidationRules.Add(SliderRange.MaxDateValidator); OpenAthletesList.ItemsSource = _openAthletes; // empty on start ModalityList.ItemsSource = Modalities.GetModalities(); AthletesWithOpenEvaluations.ItemsSource = Athletes.AthletesWithOpenEvaluations(); // Modal EvaluationModal.PreviewMouseUp += delegate { if (!_withinMarkPopup) { BodyChartMarkPopup.IsPopupOpen = false; } }; }
public static Markdown ValidModalities(this Markdown md, Modalities modalities) { //List<String> s = new List<string>(); //void Add(Modalities flag) //{ // if ((modalities & flag) == flag) // s.Add($" {flag.ToString()}"); //} //md.Paragraph("Valid for the following modalities:"); //Add(Modalities.MG); //Add(Modalities.US); //Add(Modalities.MRI); //Add(Modalities.NM); //md.List(s.ToArray()); return(md); }
public void SliceTargetReference(ElementTreeNode sliceElementDef, StructureDefinition profile, Modalities modalities, Int32 min = 0, String max = "*") { String baseName = sliceElementDef.ElementDefinition.Path.LastPathPart(); ElementDefinition sliceDef = this.SliceByUrlTarget(sliceElementDef, profile.Url, min, max).ElementDefinition .SetShort($"'{profile.Title}' reference.") .SetDefinition( new Markdown() .Paragraph($"This slice references the target '{profile.Title}'.") ) ; this.AddTargetLink(profile.Url, new SDefEditor.Cardinality(sliceDef), false); }
public ConceptDef ValidModalities(Modalities modalities) { StringBuilder sb = new StringBuilder(); void Add(Modalities flag) { if ((modalities & flag) == flag) { sb.Append($" {flag.ToString()}"); } } sb.Append("Valid for the following modalities:"); Add(Modalities.MG); Add(Modalities.US); Add(Modalities.MRI); Add(Modalities.NM); sb.AppendLine("."); this.modalities = sb.ToString(); return(this); }
public abstract bool IsValidMove(GridPos from, GridPos to, out Modalities mod);
public override bool IsValidMove(GridPos from, GridPos to, out Modalities mod) { bool valid = true; valid &= Root.instance.grid.IsAdjacent(from, to); GridObject fromObject = Root.instance.grid.GetObjectAt(from); GridObject toObject = Root.instance.grid.GetObjectAt(to); if (toObject == null) { mod = Modalities.FALL; return(false); } //int fromHeight = fromObject.GetHeight(); int fromHeight = Root.instance.spawnCharacter.currentCharacter.GetCharacterHeight(); int toHeight = toObject.GetHeight(); Tower fromTower = fromObject.GetComponent <Tower>(); Tower toTower = toObject.GetComponent <Tower>(); if (toTower == null || !toTower.IsWalkable()) { if (toHeight < fromHeight) { mod = Modalities.FALL; } else { mod = Modalities.BLOCKED; } return(false); } else { if (fromTower.towerType == Tower.TowerTypes.TUNNEL) { if (toHeight == fromHeight) { mod = Modalities.HOP; return(true); } else { mod = Modalities.BLOCKED; return(false); } } else { if (toTower.towerType == Tower.TowerTypes.STANDARD) { if (toHeight > fromHeight) { if (toHeight == fromHeight + 1) { mod = Modalities.JUMP_UP; return(true); } else { mod = Modalities.BLOCKED; return(false); } } else if (toHeight < fromHeight) { if (toHeight == fromHeight - 1) { mod = Modalities.JUMP_DOWN; return(true); } else { mod = Modalities.FALL; return(false); } } else { mod = Modalities.HOP; return(true); } } else if (toTower.towerType == Tower.TowerTypes.TUNNEL) { if (toHeight == fromHeight) { mod = Modalities.HOP; return(true); } else if (toHeight == fromHeight - 1 && fromHeight == 2) //HACK to support jumping on top of tunnel! { mod = Modalities.JUMP_UP_HACK; return(true); } else { mod = Modalities.BLOCKED; return(false); } } else { // Apparently it's an unknown tower type?! mod = Modalities.BLOCKED; return(false); } } } }
public ElementTreeSlice ComponentSliceCodeableConcept(String sliceName, CodeableConcept pattern, ValueSet valueSet, BindingStrength bindingStrength, Int32 minCardinality, String maxCardinality, String componentName, String sliceDefinitionText, Modalities modalities = Modalities.All) { String compStr = maxCardinality == "1" ? compStr = "component" : "components"; Markdown sliceDefinition; { String introStr; if (minCardinality == 0) { if (maxCardinality == "1") { introStr = "This slice contains the optional component"; } else { introStr = "This slice contains the optional components"; } } else { if (maxCardinality == "1") { introStr = "This slice contains the required component"; } else { introStr = "This slice contains the required components"; } } sliceDefinition = new Markdown() .Paragraph($"{introStr} that {sliceDefinitionText}.", $"The value of this component is a codeable concept chosen from the {valueSet.Name} valueset."); } ElementTreeSlice slice = this.AppendSlice("component", sliceName, minCardinality, maxCardinality); slice.ElementDefinition .SetShort($"{componentName} component.") .SetDefinition(sliceDefinition) .SetComment(ResourcesMaker.componentDefinition) ; if (modalities != Modalities.All) { slice.ElementDefinition.Definition .ValidModalities(modalities); } if (String.IsNullOrWhiteSpace(pattern.Coding[0].Display)) { throw new Exception($"Display null on coding {pattern.Coding[0].Code}"); } { ElementDefinition componentCode = new ElementDefinition { Path = $"{slice.ElementDefinition.Path}.code", ElementId = $"{slice.ElementDefinition.Path}:{sliceName}.code", Min = 1, Max = "1", Short = $"{componentName} component code", Definition = new Markdown() .Paragraph($"This code identifies the {componentName} {compStr}.", $"Its value shall always be the concept '{pattern.Coding[0].Display}'") }; componentCode .Pattern(pattern.ToPattern()) .DefaultValueExtension(pattern) ; slice.CreateNode(componentCode); } { ElementDefinition valueX = new ElementDefinition { Path = $"{slice.ElementDefinition.Path}.value[x]", ElementId = $"{slice.ElementDefinition.Path}:{sliceName}.value[x]", Min = 1, Max = "1", Short = $"{componentName} component value", }; valueX .Binding(valueSet, bindingStrength) .Type("CodeableConcept") .SetDefinition(new Markdown() .Paragraph("Value is a codeable concept.") ) ; slice.CreateNode(valueX); } String componentRef = Global.ElementAnchor(slice.ElementDefinition); this.AddComponentLink(componentName, new SDefEditor.Cardinality(slice.ElementDefinition), null, componentRef, "CodeableConcept", valueSet.Url); return(slice); }