Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
 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);
                }
            }
        }
    }
Esempio n. 7
0
        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);
        }