private PidDto GetPidDto()
        {
            var pidDto = new PidDto
            {
                IdentifierTypeCodeset = IdentifierTypeCodeset.MedicalRecordNumber,

                // BirthDate is currently not required in the domain.
                // If BirthDate is not provided when an Hl7 message is generated an exception will be thrown.
                PatientDateOfBirth       = _patient.Profile.BirthDate.Value,
                IdNumber                 = _patient.Key.ToString(),
                PatientAdministrativeSex = Hl7TypeConverter.ConvertToHl7(_patient.Profile.PatientGender),
                PatientEthnicity         = _patient.Ethnicity == null ? null : Hl7TypeConverter.ConvertToHl7(_patient.Ethnicity.Ethnicity),
                PatientFirstName         = _patient.Name.First,
                PatientMiddleName        = _patient.Name.Middle,
                PatientLastName          = _patient.Name.Last,
            };

            return(pidDto);
        }
        private static PidDto GetPidDto( Activity activity )
        {
            var patient = activity.ClinicalCase.Patient;

            var pidDto = new PidDto { IdentifierTypeCodeset = IdentifierTypeCodeset.MedicalRecordNumber };

            if ( patient.Profile.BirthDate.HasValue )
            {
                pidDto.PatientDateOfBirth = patient.Profile.BirthDate.Value;
            }

            pidDto.IdNumber = patient.Key.ToString ();
            pidDto.PatientFirstName = patient.Name.First;
            if ( !string.IsNullOrWhiteSpace ( patient.Name.Middle ) )
            {
                pidDto.PatientMiddleName = patient.Name.Middle;
            }

            pidDto.PatientLastName = patient.Name.Last;

            var patientAddress = patient.Addresses.FirstOrDefault ();
            if ( patientAddress != null )
            {
                pidDto.PatientCity = patientAddress.Address.CityName;
                pidDto.PatientState = patientAddress.Address.StateProvince.ShortName;
                pidDto.PatientStreetAddress = ( string.IsNullOrWhiteSpace ( patientAddress.Address.FirstStreetAddress )
                                                    ? string.Empty
                                                    : patientAddress.Address.FirstStreetAddress )
                                              +
                                              ( string.IsNullOrWhiteSpace ( patientAddress.Address.SecondStreetAddress )
                                                    ? string.Empty
                                                    : " " + patientAddress.Address.SecondStreetAddress );
                pidDto.PatientZipCode = patientAddress.Address.PostalCode.Code;
                pidDto.PatientAddressType = Hl7TypeConverter.ConvertToHl7 ( patientAddress.PatientAddressType );
            }

            pidDto.PatientAdministrativeSex = Hl7TypeConverter.ConvertToHl7 ( patient.Profile.PatientGender );
            if ( patient.Ethnicity != null )
            {
                pidDto.PatientEthnicity = Hl7TypeConverter.ConvertToHl7 ( patient.Ethnicity.Ethnicity );
            }

            var patientPhoneNumber = patient.PhoneNumbers.FirstOrDefault ();
            if ( patientPhoneNumber != null )
            {
                if ( patientPhoneNumber.PhoneNumber != null )
                {
                    var phoneNumber = patientPhoneNumber.PhoneNumber.Replace ( "-", string.Empty );

                    pidDto.PatientHomeTelephoneAreaCityCode = phoneNumber.Substring ( 0, 3 );
                    pidDto.PatientHomeTelephoneLocalNumber = phoneNumber.Substring ( 3, phoneNumber.Length - 3 );
                }

                pidDto.PatientTelecommunicationUseCode = Hl7TypeConverter.ConvertToHl7 ( patientPhoneNumber.PatientPhoneType );
            }

            var patientRace = patient.PrimaryPatientRace;
            if ( patientRace != null )
            {
                pidDto.PatientRace = Hl7TypeConverter.ConvertToHl7 ( patientRace.Race );
            }
            return pidDto;
        }
        private PidDto GetPidDto()
        {
            var pidDto = new PidDto
                {
                    IdentifierTypeCodeset = IdentifierTypeCodeset.MedicalRecordNumber,

                    // BirthDate is currently not required in the domain.
                    // If BirthDate is not provided when an Hl7 message is generated an exception will be thrown.
                    PatientDateOfBirth = _patient.Profile.BirthDate.Value,
                    IdNumber = _patient.Key.ToString (),
                    PatientAdministrativeSex = Hl7TypeConverter.ConvertToHl7 ( _patient.Profile.PatientGender ),
                    PatientEthnicity = _patient.Ethnicity == null ? null : Hl7TypeConverter.ConvertToHl7 ( _patient.Ethnicity.Ethnicity ),
                    PatientFirstName = _patient.Name.First,
                    PatientMiddleName = _patient.Name.Middle,
                    PatientLastName = _patient.Name.Last,
                };
            return pidDto;
        }
Beispiel #4
0
        private static PidDto GetPidDto(Activity activity)
        {
            var patient = activity.ClinicalCase.Patient;

            var pidDto = new PidDto {
                IdentifierTypeCodeset = IdentifierTypeCodeset.MedicalRecordNumber
            };

            if (patient.Profile.BirthDate.HasValue)
            {
                pidDto.PatientDateOfBirth = patient.Profile.BirthDate.Value;
            }

            pidDto.IdNumber         = patient.Key.ToString();
            pidDto.PatientFirstName = patient.Name.First;
            if (!string.IsNullOrWhiteSpace(patient.Name.Middle))
            {
                pidDto.PatientMiddleName = patient.Name.Middle;
            }

            pidDto.PatientLastName = patient.Name.Last;

            var patientAddress = patient.Addresses.FirstOrDefault();

            if (patientAddress != null)
            {
                pidDto.PatientCity          = patientAddress.Address.CityName;
                pidDto.PatientState         = patientAddress.Address.StateProvince.ShortName;
                pidDto.PatientStreetAddress = (string.IsNullOrWhiteSpace(patientAddress.Address.FirstStreetAddress)
                                                    ? string.Empty
                                                    : patientAddress.Address.FirstStreetAddress)
                                              +
                                              (string.IsNullOrWhiteSpace(patientAddress.Address.SecondStreetAddress)
                                                    ? string.Empty
                                                    : " " + patientAddress.Address.SecondStreetAddress);
                pidDto.PatientZipCode     = patientAddress.Address.PostalCode.Code;
                pidDto.PatientAddressType = Hl7TypeConverter.ConvertToHl7(patientAddress.PatientAddressType);
            }

            pidDto.PatientAdministrativeSex = Hl7TypeConverter.ConvertToHl7(patient.Profile.PatientGender);
            if (patient.Ethnicity != null)
            {
                pidDto.PatientEthnicity = Hl7TypeConverter.ConvertToHl7(patient.Ethnicity.Ethnicity);
            }

            var patientPhoneNumber = patient.PhoneNumbers.FirstOrDefault();

            if (patientPhoneNumber != null)
            {
                if (patientPhoneNumber.PhoneNumber != null)
                {
                    var phoneNumber = patientPhoneNumber.PhoneNumber.Replace("-", string.Empty);

                    pidDto.PatientHomeTelephoneAreaCityCode = phoneNumber.Substring(0, 3);
                    pidDto.PatientHomeTelephoneLocalNumber  = phoneNumber.Substring(3, phoneNumber.Length - 3);
                }

                pidDto.PatientTelecommunicationUseCode = Hl7TypeConverter.ConvertToHl7(patientPhoneNumber.PatientPhoneType);
            }

            var patientRace = patient.PrimaryPatientRace;

            if (patientRace != null)
            {
                pidDto.PatientRace = Hl7TypeConverter.ConvertToHl7(patientRace.Race);
            }
            return(pidDto);
        }