예제 #1
0
        public PatientRegistrationEntity PatientRegistration(PatientRegistrationDTO entity, MessageEventArgs messageEvent)
        {
            PatientRegistrationEntity patientRegistration = new PatientRegistrationEntity();

            string messageType = null;

            if (messageEvent.MessageType == MessageType.NewClientRegistration)
            {
                messageType = "ADT^A04";
            }
            else if (messageEvent.MessageType == MessageType.UpdatedClientInformation)
            {
                messageType = "ADT^A08";
            }

            int facilityId = messageEvent.FacilityId;

            Mapper.Initialize(cfg =>
            {
                cfg.CreateMap <PatientRegistrationDTO, PatientRegistrationEntity>().ReverseMap();
                cfg.CreateMap <DTO.CommonEntities.MESSAGEHEADER, MappingEntities.MESSAGEHEADER>().ReverseMap();
                cfg.CreateMap <DTO.CommonEntities.PATIENTIDENTIFICATION, MappingEntities.PATIENTIDENTIFICATION>().ReverseMap();
                cfg.CreateMap <DTO.CommonEntities.NEXTOFKIN, MappingEntities.NEXTOFKIN>().ReverseMap();
                cfg.CreateMap <DTO.CommonEntities.VISIT, MappingEntities.VISIT>().ReverseMap();
                cfg.CreateMap <DTO.CommonEntities.EXTERNALPATIENTID, MappingEntities.EXTERNALPATIENTID>().ReverseMap();
                cfg.CreateMap <DTO.CommonEntities.INTERNALPATIENTID, MappingEntities.INTERNALPATIENTID>().ReverseMap();
                cfg.CreateMap <DTO.CommonEntities.PATIENTNAME, MappingEntities.PATIENTNAME>().ReverseMap();
                cfg.CreateMap <DTO.CommonEntities.PATIENTADDRESS, MappingEntities.PATIENTADDRESS>().ReverseMap();
                cfg.CreateMap <DTO.CommonEntities.PHYSICAL_ADDRESS, MappingEntities.PHYSICALADDRESS>().ReverseMap();
                cfg.CreateMap <DTO.CommonEntities.NOKNAME, MappingEntities.NOKNAME>().ReverseMap();
            });

            patientRegistration = Mapper.Map <PatientRegistrationEntity>(entity);

            patientRegistration.MESSAGE_HEADER = GetMessageHeader(messageType, facilityId.ToString(), "P");
            return(patientRegistration);
        }
예제 #2
0
        //todo handle possible null reference exceptions when fetching data from lists
        public Registration PatientRegistrationMapping(PatientRegistrationEntity entity)
        {
            var patient = new DTOPerson()
            {
                FirstName       = entity.PATIENT_IDENTIFICATION.PATIENT_NAME.FIRST_NAME,
                MiddleName      = entity.PATIENT_IDENTIFICATION.PATIENT_NAME.FIRST_NAME,
                LastName        = entity.PATIENT_IDENTIFICATION.PATIENT_NAME.FIRST_NAME,
                DateOfBirth     = entity.PATIENT_IDENTIFICATION.DATE_OF_BIRTH,
                MobileNumber    = entity.PATIENT_IDENTIFICATION.PHONE_NUMBER,
                NationalId      = entity.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.FirstOrDefault(n => n.IDENTIFIER_TYPE == "NATIONAL_ID").ID,
                Sex             = entity.PATIENT_IDENTIFICATION.SEX,
                PhysicalAddress = entity.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.POSTAL_ADDRESS,
                //todo update precision once updated in IL
                DobPrecision = false
            };

            var ts = entity.NEXT_OF_KIN.FirstOrDefault(n => n.CONTACT_ROLE == "T");
            var treatmentSupporter = new DTOPerson()
            {
                FirstName       = ts.NOK_NAME.FIRST_NAME,
                MiddleName      = ts.NOK_NAME.MIDDLE_NAME,
                LastName        = ts.NOK_NAME.LAST_NAME,
                PhysicalAddress = ts.ADDRESS,
                Sex             = ts.SEX,
                DateOfBirth     = ts.DATE_OF_BIRTH,
                MobileNumber    = ts.PHONE_NUMBER,
                //todo update precision once updated in IL
                //NationalId = ,
                DobPrecision = false
            };
            var identifiers = new List <DTOIdentifier>();

            foreach (var id in entity.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID)
            {
                var identifier = new DTOIdentifier()
                {
                    AssigningAuthority = id.ASSIGNING_AUTHORITY,
                    IdentifierType     = id.IDENTIFIER_TYPE,
                    IdentifierValue    = id.ID
                };
                identifiers.Add(identifier);
            }
            var registration = new Registration()
            {
                Patient                    = patient,
                MotherMaidenName           = entity.PATIENT_IDENTIFICATION.MOTHER_MAIDEN_NAME,
                MaritalStatus              = entity.PATIENT_IDENTIFICATION.MARITAL_STATUS,
                County                     = entity.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.COUNTY,
                SubCounty                  = entity.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.SUB_COUNTY,
                Ward                       = entity.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.WARD,
                Village                    = entity.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.VILLAGE,
                DateOfDeath                = null,
                DeathIndicator             = entity.PATIENT_IDENTIFICATION.DEATH_INDICATOR,
                TreatmentSupporter         = treatmentSupporter,
                TSRelationshipType         = ts.RELATIONSHIP,
                InternalPatientIdentifiers = identifiers
                                             //DateOfEnrollment = entity,
            };

            return(registration);
        }
예제 #3
0
        public PatientRegistrationEntity PatientRegistration(Registration entity)
        {
            var identifiers = new List <INTERNALPATIENTID>();

            foreach (var id in entity.InternalPatientIdentifiers)
            {
                var identifier = new INTERNALPATIENTID()
                {
                    ID = id.IdentifierValue,
                    IDENTIFIER_TYPE     = id.IdentifierType,
                    ASSIGNING_AUTHORITY = id.AssigningAuthority
                };
                identifiers.Add(identifier);
            }

            var nextOfKin = new List <NEXTOFKIN>();

            if (entity.TreatmentSupporter != null)
            {
                var treatmentSupporter = new NEXTOFKIN()
                {
                    NOK_NAME = new NOKNAME()
                    {
                        FIRST_NAME  = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.FirstName) ? entity.TreatmentSupporter.FirstName : "",
                        MIDDLE_NAME = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.MiddleName) ? entity.TreatmentSupporter.MiddleName : "",
                        LAST_NAME   = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.LastName) ? entity.TreatmentSupporter.LastName : ""
                    },
                    CONTACT_ROLE  = "T",
                    RELATIONSHIP  = !string.IsNullOrWhiteSpace(entity.TSRelationshipType) ? entity.TSRelationshipType : "",
                    PHONE_NUMBER  = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.MobileNumber) ? entity.TreatmentSupporter.MobileNumber : "",
                    SEX           = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.Sex) ? entity.TreatmentSupporter.Sex : "",
                    DATE_OF_BIRTH = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.DateOfBirth) ? entity.TreatmentSupporter.DateOfBirth : "",
                    ADDRESS       = !string.IsNullOrWhiteSpace(entity.TreatmentSupporter.PhysicalAddress) ? entity.TreatmentSupporter.PhysicalAddress : ""
                };
                nextOfKin.Add(treatmentSupporter);
            }


            var patientRegistrationEntity = new PatientRegistrationEntity()
            {
                MESSAGE_HEADER         = GetMessageHeader("ADT^A04"),
                PATIENT_IDENTIFICATION = new PATIENTIDENTIFICATION()
                {
                    PATIENT_NAME = new PATIENTNAME()
                    {
                        FIRST_NAME  = !string.IsNullOrWhiteSpace(entity.Patient.FirstName)? entity.Patient.FirstName:"",
                        MIDDLE_NAME = !string.IsNullOrWhiteSpace(entity.Patient.MiddleName)? entity.Patient.MiddleName:"",
                        LAST_NAME   = !string.IsNullOrWhiteSpace(entity.Patient.LastName)? entity.Patient.LastName:"",
                    },
                    EXTERNAL_PATIENT_ID = new EXTERNALPATIENTID()
                    {
                        ID = "",
                        IDENTIFIER_TYPE     = "GODS_NUMBER",
                        ASSIGNING_AUTHORITY = "MPI"
                    },
                    DATE_OF_BIRTH   = !string.IsNullOrWhiteSpace(entity.Patient.DateOfBirth)?entity.Patient.DateOfBirth:null,
                    SEX             = !string.IsNullOrWhiteSpace(entity.Patient.Sex)? entity.Patient.Sex:"",
                    PHONE_NUMBER    = !string.IsNullOrWhiteSpace(entity.Patient.MobileNumber)? entity.Patient.MobileNumber:"",
                    PATIENT_ADDRESS = new PATIENTADDRESS()
                    {
                        POSTAL_ADDRESS   = !string.IsNullOrWhiteSpace(entity.Patient.PhysicalAddress)? entity.Patient.PhysicalAddress:"",
                        PHYSICAL_ADDRESS = new PHYSICALADDRESS()
                        {
                            COUNTY     = !string.IsNullOrWhiteSpace(entity.County)? entity.County:"",
                            SUB_COUNTY = !string.IsNullOrWhiteSpace(entity.SubCounty)? entity.SubCounty:"",
                            VILLAGE    = !string.IsNullOrWhiteSpace(entity.Village)? entity.Village:"",
                            WARD       = !string.IsNullOrWhiteSpace(entity.Ward)? entity.Ward:""
                        },
                    },
                    MARITAL_STATUS      = !string.IsNullOrWhiteSpace(entity.MaritalStatus)? entity.MaritalStatus:"",
                    DEATH_INDICATOR     = !string.IsNullOrWhiteSpace(entity.DeathIndicator)? entity.DeathIndicator:"",
                    DEATH_DATE          = "",
                    MOTHER_MAIDEN_NAME  = entity.MotherMaidenName,
                    INTERNAL_PATIENT_ID = identifiers
                },
                NEXT_OF_KIN        = nextOfKin,
                OBSERVATION_RESULT = new List <OBSERVATIONRESULT>()
            };

            return(patientRegistrationEntity);
        }