Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="PatientSearchViewModel"/> class.
        /// </summary>
        /// <param name="userDialogService">The user dialog service.</param>
        /// <param name="asyncRequestDispatcherFactory">The async request dispatcher factory.</param>
        /// <param name="accessControlManager">The access control manager.</param>
        /// <param name="navigationService">The navigation service.</param>
        /// <param name="commandFactory">The command factory.</param>
        public PatientSearchViewModel(
            IUserDialogService userDialogService,
            IAsyncRequestDispatcherFactory asyncRequestDispatcherFactory,
            IAccessControlManager accessControlManager,
            INavigationService navigationService,
            ICommandFactory commandFactory
            )
            : base(accessControlManager, commandFactory, new PatientAdvancedSearchCriteria())
        {
            _asyncRequestDispatcherFactory = asyncRequestDispatcherFactory;
            _navigationService             = navigationService;
            _userDialogService             = userDialogService;

            var requestDispatcher = _asyncRequestDispatcherFactory.CreateAsyncRequestDispatcher();

            requestDispatcher
            .AddLookupValuesRequest("PatientGender")
            .AddLookupValuesRequest("StateProvince")
            .AddLookupValuesRequest("PatientIdentifierType")
            .AddLookupValuesRequest("Suffix");

            IsLoading = true;
            requestDispatcher.ProcessRequests(LookupValueRequestDispatcherCompleted, HandleRequestDispatcherException);

            var advancedSearchCriteriaPropertyChangedEvent =
                from evt in
                Observable.FromEventPattern <PropertyChangedEventArgs> (_advancedSearchCriteria, "PropertyChanged")
                select evt.ToString();

            advancedSearchCriteriaPropertyChangedEvent
            .ObserveOnDispatcher().Subscribe(
                arg =>
            {
                if (arg == PropertyUtil.ExtractPropertyName(() => AdvancedSearchCriteria.IdentifierTypeToSearch))
                {
                    RaisePropertyChanged(() => IsIdentifierTypeToSearchNotNull);
                }
            }
                );

            ApplyContextChanges = true;
            AddNewPatient       = new AddNewPatient();
        }
Exemple #2
0
        private void CreatePatientRequestDispatcherCompleted(ReceivedResponses receivedResponses)
        {
            IsLoading = false;
            var response         = receivedResponses.Get <CreateNewPatientResponse> ();
            var validationErrors = response.DataTransferObject.DataErrorInfoCollection.ToList();

            if (validationErrors.Count > 0)
            {
                var errors = new StringBuilder();
                errors.AppendLine("The following errors occurred: ");

                foreach (var validationError in validationErrors)
                {
                    errors.AppendLine(validationError.Message);
                }

                _userDialogService.ShowDialog(errors.ToString(), "Errors", UserDialogServiceOptions.Ok);
            }
            else
            {
                AddNewState = AddNewState.Successful;
                AddNewPatient.CleanUpAllFields();

                _navigationService.Navigate(
                    WorkspacesRegion,
                    PatientWorkspaceView,
                    "SubViewPassThrough",
                    new[]
                {
                    new KeyValuePair <string, string> ("PatientKey", response.PatientDto.Key.ToString()),
                    new KeyValuePair <string, string> ("FullName", response.PatientDto.PatientProfile.FullName),
                    new KeyValuePair <string, string> ("SubViewName", "PatientEditorView"),
                    new KeyValuePair <string, string> ("IsCreate", true.ToString())
                });
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="PatientSearchViewModel"/> class.
        /// </summary>
        /// <param name="userDialogService">The user dialog service.</param>
        /// <param name="asyncRequestDispatcherFactory">The async request dispatcher factory.</param>
        /// <param name="accessControlManager">The access control manager.</param>
        /// <param name="navigationService">The navigation service.</param>
        /// <param name="commandFactory">The command factory.</param>
        public PatientSearchViewModel(
            IUserDialogService userDialogService,
            IAsyncRequestDispatcherFactory asyncRequestDispatcherFactory,
            IAccessControlManager accessControlManager,
            INavigationService navigationService,
            ICommandFactory commandFactory
            )
            : base(accessControlManager, commandFactory, new PatientAdvancedSearchCriteria ())
        {
            _asyncRequestDispatcherFactory = asyncRequestDispatcherFactory;
            _navigationService = navigationService;
            _userDialogService = userDialogService;

            var requestDispatcher = _asyncRequestDispatcherFactory.CreateAsyncRequestDispatcher ();
            requestDispatcher
                .AddLookupValuesRequest ( "PatientGender" )
                .AddLookupValuesRequest ( "StateProvince" )
                .AddLookupValuesRequest ( "PatientIdentifierType" )
                .AddLookupValuesRequest ( "Suffix" );

            IsLoading = true;
            requestDispatcher.ProcessRequests ( LookupValueRequestDispatcherCompleted, HandleRequestDispatcherException );

            var advancedSearchCriteriaPropertyChangedEvent =
                from evt in
                    Observable.FromEventPattern<PropertyChangedEventArgs> ( _advancedSearchCriteria, "PropertyChanged" )
                select evt.ToString ();

            advancedSearchCriteriaPropertyChangedEvent
                .ObserveOnDispatcher().Subscribe (
                    arg =>
                        {
                            if ( arg == PropertyUtil.ExtractPropertyName ( () => AdvancedSearchCriteria.IdentifierTypeToSearch ) )
                            {
                                RaisePropertyChanged ( () => IsIdentifierTypeToSearchNotNull );
                            }
                        }
                );

            ApplyContextChanges = true;
            AddNewPatient = new AddNewPatient ();
        }