Esempio n. 1
0
        /// <summary>
        /// Get Practitioner by ID
        /// </summary>
        /// <param name="practitionerId"> ID of practitioner to be fetched </param>
        /// <returns> Practitioner </returns>
        public static async Task <Models.Practitioner> GetPractitioner(string practitionerId)
        {
            Models.Practitioner         practitioner     = null;
            Hl7.Fhir.Model.Practitioner fhirPractitioner = null;

            try
            {
                // limit to 1 to avoid huge response Bundle
                var PractitionerQuery = new SearchParams()
                                        .Where("identifier=http://hl7.org/fhir/sid/us-npi|" + practitionerId)
                                        .LimitTo(1);

                Bundle PractitionerResult = await Client.SearchAsync <Hl7.Fhir.Model.Practitioner>(PractitionerQuery);

                if (PractitionerResult.Entry.Count > 0)
                {
                    // Map the FHIR Practitioner object to App's Practitioner object
                    fhirPractitioner = (Hl7.Fhir.Model.Practitioner)PractitionerResult.Entry[0].Resource;
                    PractitionerMapper mapper = new PractitionerMapper();
                    practitioner = mapper.Map(fhirPractitioner);
                }
            }
            catch (FhirOperationException FhirException)
            {
                System.Diagnostics.Debug.WriteLine("Fhir error message: " + FhirException.Message);
            }
            catch (Exception GeneralException)
            {
                System.Diagnostics.Debug.WriteLine("General error message: " + GeneralException.Message);
            }
            return(practitioner);
        }
Esempio n. 2
0
        /// <summary>
        /// Method to map a Fhir Model Practitioner element to an Practitioner object
        /// </summary>
        /// <param name="element"> Practitioner element from Fhir model </param>
        /// <returns> A Practitioner object with values from Fhir model element </returns>
        public override Models.Practitioner Map(Hl7.Fhir.Model.Practitioner element)
        {
            var practitioner = new Models.Practitioner();

            /// get valid identifier
            foreach (var identifier in element.Identifier)
            {
                if (identifier.System.Equals(ID_SYSTEM))
                {
                    practitioner.Id = identifier.Value;
                    break;
                }
            }

            practitioner.Name = element.Name[0].ToString();

            if (element.BirthDateElement != null)
            {
                practitioner.BirthDate = ((DateTimeOffset)element.BirthDateElement.ToDateTimeOffset()).DateTime;
            }
            else
            {
                practitioner.BirthDate = null;
            }

            if (Enum.TryParse(element.GenderElement.TypeName, out Gender gender))
            {
                practitioner.Gender = gender;
            }

            /// map practitioner's address with AddressMapper
            if (element.Address.Count > 0)
            {
                Hl7.Fhir.Model.Address address = element.Address[0];
                AddressMapper          mapper  = new AddressMapper();
                practitioner.Address = mapper.Map(address);
            }

            return(practitioner);
        }
Esempio n. 3
0
 public override Hl7.Fhir.Model.Practitioner Map(Models.Practitioner element)
 {
     throw new NotImplementedException();
 }