private static string GetTrigger(ObservationRecord observationRecord) { string observationName = observationRecord.Name; string pattern = "^[^a-zA-Z]*"; return(Regex.Replace(observationName, pattern, "").Replace('_', ' ')); }
/// <summary> /// 副作用入力画面を閉じ、表示元画面に遷移する。 /// </summary> /// <param name="navi">ナビゲーションサービス</param> /// <param name="record">表示元画面に渡す観察記録</param> public static async void GoBackAsync(INavigationService navi, ObservationRecord record) { await navi.GoBackAsync( new NavigationParameters { { KEY_PARAM, new Parameter { Record = record } }, }); }
public void OnNavigatedTo(INavigationParameters parameters) { Debug.WriteLine("SideEffectPageViewModel.OnNavigatedTo()"); if (parameters.GetNavigationMode() == NavigationMode.Back && BasicSamplePageViewModel.Result.GetParameter(parameters , out BasicSamplePageViewModel.Result.Parameter result)) { // 副作用入力画面からの戻り。 _record = result.Record; } }
/// <summary> /// 副作用入力画面に遷移する。 /// </summary> /// <param name="navi">ナビゲーションサービス</param> /// <param name="master">画面遷移パラメータ</param> /// <param name="record">副作用入力画面に表示する観察記録</param> public static async void NavigateAsync(INavigationService navi , ISideEffectItemMaster master, ObservationRecord record) { // パラメータチェック。 if (master == null || record == null) { throw new ArgumentException(); } // 副作用入力画面に遷移する。 NavigationParameters param = new NavigationParameters { { KEY_MASTER, master }, { KEY_RECORD, record }, }; await navi.NavigateAsync("BasicSamplePage", param); }
// Takes a PQDIF time series and converts it to an array of 64-bit integer values in ticks. private static long[] ToTicks(SeriesInstance timeSeries) { ObservationRecord observation = timeSeries.Channel.ObservationRecord; long startTime; double nominalFrequency; if (timeSeries.Definition.QuantityUnits == QuantityUnits.Seconds) { startTime = observation.StartTime.Ticks; // The time series contains values in seconds, // relative to the start time of the observation record return(timeSeries.OriginalValues .Select(Convert.ToDouble) .Select(Ticks.FromSeconds) .Select(timeOffset => startTime + (long)timeOffset) .ToArray()); } else if (timeSeries.Definition.QuantityUnits == QuantityUnits.Timestamp) { // The time series contains values in absolute time return(timeSeries.OriginalValues .Cast <DateTime>() .Select(time => time.Ticks) .ToArray()); } else if (timeSeries.Definition.QuantityUnits == QuantityUnits.Cycles) { startTime = observation.StartTime.Ticks; nominalFrequency = observation.Settings.NominalFrequency; // TODO: Is this correct (dividing by nominal frequency)? // The time series contains values in cycles, // relative to the start time of the observation record return(timeSeries.OriginalValues .Select(Convert.ToDouble) .Select(cycles => cycles / nominalFrequency) .Select(Ticks.FromSeconds) .Select(timeOffset => startTime + (long)timeOffset) .ToArray()); } // The time series does not contain timestamps...? return(null); }
/// <summary> /// 画面遷移パラメータから副作用マスタと観察記録を取得する。 /// </summary> /// <param name="parameters">画面遷移パラメータ</param> /// <param name="master">画面遷移パラメータ</param> /// <param name="record">作用入力画面に表示する観察記録</param> public static void GetParameter(INavigationParameters parameters, out ISideEffectItemMaster master, out ObservationRecord record) { master = parameters.GetValue <ISideEffectItemMaster>(KEY_MASTER); record = parameters.GetValue <ObservationRecord>(KEY_RECORD); }