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); }
//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); }
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); }