Beispiel #1
0
        public bool GetPatientDetails(ViewModel.Presenter Presenter)
        {
            FhirApi          FhirApi          = new FhirApi(FhirGatewayEndpoint);
            ApiRequestHeader ApiRequestHeader = new ApiRequestHeader(Presenter.CurrentUserAccount.AccessToken, this.ApplicationStore.App_id, this.ApplicationStore.App_Version);

            FhirApi.ApiRequestHeader = ApiRequestHeader;
            try
            {
                PatientDetailsResponse PatientDetailsResponse = FhirApi.GetPatientDetails(Presenter.CurrentUserAccount.SelectedUserAccountRecord.Ihi);
                Presenter.PatientBanerViewModel = new ViewModel.PatientBanerViewModel();
                if (PatientDetailsResponse.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    if (PatientDetailsResponse.ApiPatient.Dob.HasValue)
                    {
                        Presenter.PatientBanerViewModel.Dob = PatientDetailsResponse.ApiPatient.Dob.Value.ToShortDateString();
                    }
                    else
                    {
                        Presenter.PatientBanerViewModel.Dob = "Unknown";
                    }
                    Presenter.PatientBanerViewModel.Family           = PatientDetailsResponse.ApiPatient.Family;
                    Presenter.PatientBanerViewModel.Given            = PatientDetailsResponse.ApiPatient.Given;
                    Presenter.PatientBanerViewModel.Sex              = PatientDetailsResponse.ApiPatient.Sex;
                    Presenter.PatientBanerViewModel.Ihi              = PatientDetailsResponse.ApiPatient.Ihi;
                    Presenter.PatientBanerViewModel.IndigenousStatus = PatientDetailsResponse.ApiPatient.IndigenousStatusDescription;
                    //Not that RelationshipDescription and RelationshipType is not returned by GetPatient only by GetRecordLisy
                    if (PatientDetailsResponse.Format == FhirApi.FhirFormat.Xml)
                    {
                        Presenter.TextEditorViewModel.FormatType = Extensions.AvalonEditSyntaxTypes.Xml;
                    }
                    else if (PatientDetailsResponse.Format == FhirApi.FhirFormat.Json)
                    {
                        Presenter.TextEditorViewModel.FormatType = Extensions.AvalonEditSyntaxTypes.Json;
                    }
                    else
                    {
                        Presenter.TextEditorViewModel.FormatType = Extensions.AvalonEditSyntaxTypes.None;
                    }
                    Presenter.TextEditorViewModel.Text = PatientDetailsResponse.Body;
                    //PatientDetailsResponse.ApiPatient.RelationshipDescription;
                    return(true);
                }
                else
                {
                    if (PatientDetailsResponse.ErrorResponse != null)
                    {
                        Presenter.PatientBanerViewModel.Family = PatientDetailsResponse.ErrorResponse.Description;
                    }
                    else
                    {
                        Presenter.PatientBanerViewModel.Family = $"Unknown error, HTTPStatus: {PatientDetailsResponse.StatusCode.ToString()}";
                    }
                    return(true);
                }
            }
            catch (Exception Exec)
            {
                throw new Exception("GetPatientDetails failed.", Exec);
            }
        }