public async Task <string> AddPatientAsync(PatientCreateRequest patient)
        {
            try
            {
                var newpa = new Hl7.Fhir.Model.Patient()
                {
                    Active    = true,
                    BirthDate = patient.DateOfBirth?.ToString("yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture),

                    Gender = patient.Gender.ToLower() == "female" ? AdministrativeGender.Female : AdministrativeGender.Male,
                    Name   = new List <HumanName>()
                    {
                        new HumanName()
                        {
                            Use    = HumanName.NameUse.Usual,
                            Text   = patient.Firstname + patient.Lastname,
                            Family = patient.Lastname,
                            Given  = new List <string>()
                            {
                                patient.Firstname
                            }
                        }
                    },
                    Telecom = new List <ContactPoint>()
                    {
                        new ContactPoint()
                        {
                            Use   = ContactPoint.ContactPointUse.Mobile,
                            Rank  = 1,
                            Value = patient.PhoneNumber
                        }
                    }
                };

                var fhirClient = new FhirClient("http://hapi.fhir.org/baseDstu3");
                var result     = await fhirClient.CreateAsync <Hl7.Fhir.Model.Patient>(newpa);

                return(result.Id);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
        public async Task <ApiResponse> Create([FromBody] PatientCreateRequest request)
        {
            try
            {
                var FhirResult = _fhirPatientRequestService.AddPatientAsync(request);
                request.ExternalId = FhirResult.Result;
                var result = await _objControllerHelper.Create(request);

                if (result.Status == PatientCreateStatus.Success)
                {
                    return(new ApiResponse(request.ExternalId));
                }
                return(new ApiResponse(400, result.Error));
            }
            catch (Exception ex)
            {
                throw new ApiException(ex);
            }
        }
예제 #3
0
        public async Task <ResultDto <Guid, PatientCreateStatus> > Create(PatientCreateRequest request)
        {
            var model = _mapper.Map <PatientCreateRequest, Patient>(request);

            try
            {
                var result = await _repository.Create(model);

                return(result);
            }
            catch (DbUpdateConcurrencyException)
            {
                return(new ResultDto <Guid, PatientCreateStatus>(PatientCreateStatus.InternalServerError));
            }
            catch (Exception ex)
            {
                return(new ResultDto <Guid, PatientCreateStatus>(PatientCreateStatus.InternalServerError));
            }
        }