Example #1
0
        public void should_Append_Unique_Tests()
        {
            var initialTestResult = new ObsFinalTestResult {
                FinalResult = _pos
            };
            var initalTestDate  = DateTime.Today.Date;
            var initialFacility = "10000";

            var shr = SHR.CreateBlank();

            shr.HIV_TEST.Add(HIVTEST.Create(initalTestDate, initialTestResult, initialFacility));
            Assert.True(shr.HIV_TEST.Count == 1);

            var newTestResult = new ObsFinalTestResult {
                FinalResult = _pos
            };
            var newTestDate        = DateTime.Today.Date;
            var newinitialFacility = "10000";

            shr.UpdateTesting(newTestDate, newTestResult, newinitialFacility);


            Assert.True(shr.HIV_TEST.Count == 1);
            foreach (var hivtest in shr.HIV_TEST)
            {
                Console.WriteLine(hivtest);
            }
        }
Example #2
0
        public DtoShr GenerateShrForEmrUsingCardSerial(string cardSerial)
        {
            //string Version = "VERSION\": \"1.0.0\"";
            var patientIdentification = GetPatientidentification(cardSerial);
            var carddetails           = GetPatientCarddetails(cardSerial);
            List <IMMUNIZATION> immunizationSource = GetPatientImmunization(cardSerial);
            List <NEXTOFKIN>    nextOfKinSouce     = GetPatientNextofkin(cardSerial);
            List <HIVTEST>      hivTestSource      = GetPatientHivtest(cardSerial);

            var clientGeneratedShr = new SHR()
            {
                //VERSION = Version
                PATIENT_IDENTIFICATION = patientIdentification,
                NEXT_OF_KIN            = nextOfKinSouce,
                HIV_TEST     = hivTestSource,
                IMMUNIZATION = immunizationSource,
                CARD_DETAILS = carddetails
            };

            DtoMapper dtoMapper             = new DtoMapper();
            DtoShr    clientGeneratedDtoShr = new DtoShr();


            clientGeneratedDtoShr = dtoMapper.GenerateDtoShr(clientGeneratedShr);


            return(clientGeneratedDtoShr);
        }
Example #3
0
        public void should_Create_Blank()
        {
            var shr = SHR.CreateBlank();

            Assert.NotNull(shr);
            var json = JsonConvert.SerializeObject(shr);

            Console.WriteLine(json);
        }
Example #4
0
 public static SmartClientDTO Create(SHR shr)
 {
     return(new SmartClientDTO(shr.PATIENT_IDENTIFICATION.PATIENT_NAME.FIRST_NAME,
                               shr.PATIENT_IDENTIFICATION.PATIENT_NAME.MIDDLE_NAME,
                               shr.PATIENT_IDENTIFICATION.PATIENT_NAME.LAST_NAME,
                               shr.PATIENT_IDENTIFICATION.SEX,
                               GetBirthDate(shr.PATIENT_IDENTIFICATION.DATE_OF_BIRTH),
                               GetBirthDateEstimated(shr.PATIENT_IDENTIFICATION.DATE_OF_BIRTH_PRECISION),
                               GetHtsNumber(shr.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID),
                               GetFacility(shr.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID),
                               GetMaritalStatus(shr.PATIENT_IDENTIFICATION.MARITAL_STATUS),
                               GetCardSerial(shr.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID), GetLandmark(shr.PATIENT_IDENTIFICATION),
                               GetPhone(shr.PATIENT_IDENTIFICATION)));
 }
        public SHR ShrMessageEntity(DtoShr shrDto)
        {
            SHR clientShrEntity = new SHR();

            Mapper.Initialize(cfg =>
            {
                cfg.CreateMap <DtoShr, SHR>().ReverseMap();
                cfg.CreateMap <DTO.PSmart.PATIENTIDENTIFICATION, MappingEntities.PSmart.PATIENTIDENTIFICATION>().ReverseMap();
                cfg.CreateMap <DTO.PSmart.NEXTOFKIN, MappingEntities.PSmart.NEXTOFKIN>().ReverseMap();
                cfg.CreateMap <DTO.PSmart.HIVTEST, MappingEntities.PSmart.HIVTEST>().ReverseMap();
                cfg.CreateMap <DTO.PSmart.IMMUNIZATION, MappingEntities.PSmart.IMMUNIZATION>().ReverseMap();
                cfg.CreateMap <DTO.PSmart.CARDDETAILS, MappingEntities.PSmart.CARDDETAILS>().ReverseMap();
            });

            clientShrEntity = Mapper.Map <SHR>(shrDto);
            return(clientShrEntity);
        }
Example #6
0
 public SHR GetCLientShrByCardSerialNUmber(string serialNumber)
 {
     try
     {
         using (UnitOfWork unitOfWork = new UnitOfWork(new PsmartContext()))
         {
             SHR clientShr = unitOfWork.ShrRepository
                             .FindBy(x => x.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ID == serialNumber).FirstOrDefault();
             unitOfWork.Dispose();
             return(clientShr);
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex);
         throw new System.Exception(ex.Message);
     }
 }
        public static List <HIVTestHistoryDTO> Create(SHR shr)
        {
            var list = new List <HIVTestHistoryDTO>();

            foreach (var hivtest in shr.HIV_TEST)
            {
                list.Add(new HIVTestHistoryDTO(GetTestDate(hivtest.DATE), hivtest.RESULT, hivtest.TYPE, hivtest.FACILITY));
            }

            if (list.Count == 0)
            {
                return(list);
            }

            var sortedList = list.OrderByDescending(x => x.Date).ToList();

            return(sortedList);
        }
 public string ProcessIncomingSHR(SHR message)
 {
     //this called after logic (validation)
     return("");
 }
Example #9
0
        private void initOperators()
        {
            setName(NEG, "-");
            operators[NEG.operatorIndex()] = new[] {
                unary(NEG, TypeTag.INT, TypeTag.INT),
                unary(NEG, TypeTag.LONG, TypeTag.LONG),
                unary(NEG, TypeTag.FLOAT, TypeTag.DOUBLE),
                unary(NEG, TypeTag.DOUBLE, TypeTag.DOUBLE),
            };

            setName(NOT, "!");
            operators[NOT.operatorIndex()] = new[] {
                unary(NOT, TypeTag.BOOLEAN, TypeTag.BOOLEAN)
            };

            setName(COMPL, "~");
            operators[COMPL.operatorIndex()] = new[] {
                unary(COMPL, TypeTag.INT, TypeTag.INT),
                unary(COMPL, TypeTag.LONG, TypeTag.LONG)
            };

            setName(PRE_INC, "++");
            operators[PRE_INC.operatorIndex()] = new[] {
                unary(PRE_INC, TypeTag.INT, TypeTag.INT, LLVMAdd),
                unary(PRE_INC, TypeTag.LONG, TypeTag.LONG, LLVMAdd),
                unary(PRE_INC, TypeTag.FLOAT, TypeTag.FLOAT, LLVMFAdd),
                unary(PRE_INC, TypeTag.DOUBLE, TypeTag.DOUBLE, LLVMFAdd)
            };

            setName(PRE_DEC, "--");
            operators[PRE_DEC.operatorIndex()] = new[] {
                unary(PRE_DEC, TypeTag.INT, TypeTag.INT, LLVMSub),
                unary(PRE_DEC, TypeTag.LONG, TypeTag.LONG, LLVMSub),
                unary(PRE_DEC, TypeTag.FLOAT, TypeTag.FLOAT, LLVMFSub),
                unary(PRE_DEC, TypeTag.DOUBLE, TypeTag.DOUBLE, LLVMFSub)
            };

            setName(POST_INC, "++");
            operators[POST_INC.operatorIndex()] = new[] {
                unary(POST_INC, TypeTag.INT, TypeTag.INT, LLVMAdd),
                unary(POST_INC, TypeTag.LONG, TypeTag.LONG, LLVMAdd),
                unary(POST_INC, TypeTag.FLOAT, TypeTag.FLOAT, LLVMFAdd),
                unary(POST_INC, TypeTag.DOUBLE, TypeTag.DOUBLE, LLVMFAdd)
            };

            setName(POST_DEC, "--");
            operators[POST_DEC.operatorIndex()] = new[] {
                unary(POST_DEC, TypeTag.INT, TypeTag.INT, LLVMSub),
                unary(POST_DEC, TypeTag.LONG, TypeTag.LONG, LLVMSub),
                unary(POST_DEC, TypeTag.FLOAT, TypeTag.FLOAT, LLVMFSub),
                unary(POST_DEC, TypeTag.DOUBLE, TypeTag.DOUBLE, LLVMFSub)
            };

            setName(OR, "||");
            operators[OR.operatorIndex()] = new[] {
                binary(OR, TypeTag.BOOLEAN, TypeTag.BOOLEAN, TypeTag.BOOLEAN, LLVMOr),
            };

            setName(AND, "&&");
            operators[AND.operatorIndex()] = new[] {
                binary(AND, TypeTag.BOOLEAN, TypeTag.BOOLEAN, TypeTag.BOOLEAN, LLVMAnd),
            };

            // Order of combination listing for binary operators matters for correct resolution
            // More assignable types must be listed after less assignable ones,
            // which is the order listed in the TypeTag enum.

            setName(BITOR, "|");
            operators[BITOR.operatorIndex()] = new[] {
                binary(BITOR, TypeTag.BOOLEAN, TypeTag.BOOLEAN, TypeTag.BOOLEAN, LLVMOr),
                binary(BITOR, TypeTag.INT, TypeTag.INT, TypeTag.INT, LLVMOr),
                binary(BITOR, TypeTag.LONG, TypeTag.LONG, TypeTag.LONG, LLVMOr),
            };

            setName(BITXOR, "^");
            operators[BITXOR.operatorIndex()] = new[] {
                binary(BITXOR, TypeTag.BOOLEAN, TypeTag.BOOLEAN, TypeTag.BOOLEAN, LLVMXor),
                binary(BITXOR, TypeTag.INT, TypeTag.INT, TypeTag.INT, LLVMXor),
                binary(BITXOR, TypeTag.LONG, TypeTag.LONG, TypeTag.LONG, LLVMXor),
            };

            setName(BITAND, "&");
            operators[BITAND.operatorIndex()] = new[] {
                binary(BITAND, TypeTag.BOOLEAN, TypeTag.BOOLEAN, TypeTag.BOOLEAN, LLVMAnd),
                binary(BITAND, TypeTag.INT, TypeTag.INT, TypeTag.INT, LLVMAnd),
                binary(BITAND, TypeTag.LONG, TypeTag.LONG, TypeTag.LONG, LLVMAnd),
            };

            setName(EQ, "==");
            operators[EQ.operatorIndex()] = new[] {
                binary(EQ, TypeTag.BOOLEAN, TypeTag.BOOLEAN, TypeTag.BOOLEAN, LLVMICmp, LLVMIntEQ),
                binary(EQ, TypeTag.CHAR, TypeTag.CHAR, TypeTag.BOOLEAN, LLVMICmp, LLVMIntEQ),
                binary(EQ, TypeTag.INT, TypeTag.INT, TypeTag.BOOLEAN, LLVMICmp, LLVMIntEQ),
                binary(EQ, TypeTag.LONG, TypeTag.LONG, TypeTag.BOOLEAN, LLVMICmp, LLVMIntEQ),
                binary(EQ, TypeTag.FLOAT, TypeTag.FLOAT, TypeTag.BOOLEAN, LLVMFCmp, LLVMRealOEQ),
                binary(EQ, TypeTag.DOUBLE, TypeTag.DOUBLE, TypeTag.BOOLEAN, LLVMFCmp, LLVMRealOEQ),
            };

            setName(NEQ, "!=");
            operators[NEQ.operatorIndex()] = new[] {
                binary(NEQ, TypeTag.BOOLEAN, TypeTag.BOOLEAN, TypeTag.BOOLEAN, LLVMICmp, LLVMIntNE),
                binary(NEQ, TypeTag.CHAR, TypeTag.CHAR, TypeTag.BOOLEAN, LLVMICmp, LLVMIntNE),
                binary(NEQ, TypeTag.INT, TypeTag.INT, TypeTag.BOOLEAN, LLVMICmp, LLVMIntNE),
                binary(NEQ, TypeTag.LONG, TypeTag.LONG, TypeTag.BOOLEAN, LLVMICmp, LLVMIntNE),
                binary(NEQ, TypeTag.FLOAT, TypeTag.FLOAT, TypeTag.BOOLEAN, LLVMFCmp, LLVMRealONE),
                binary(NEQ, TypeTag.DOUBLE, TypeTag.DOUBLE, TypeTag.BOOLEAN, LLVMFCmp, LLVMRealONE),
            };

            setName(LT, "<");
            operators[LT.operatorIndex()] = new[] {
                binary(LT, TypeTag.CHAR, TypeTag.CHAR, TypeTag.BOOLEAN, LLVMICmp, LLVMIntULT),
                binary(LT, TypeTag.INT, TypeTag.INT, TypeTag.BOOLEAN, LLVMICmp, LLVMIntSLT),
                binary(LT, TypeTag.LONG, TypeTag.LONG, TypeTag.BOOLEAN, LLVMICmp, LLVMIntSLT),
                binary(LT, TypeTag.FLOAT, TypeTag.FLOAT, TypeTag.BOOLEAN, LLVMFCmp, LLVMRealOLT),
                binary(LT, TypeTag.DOUBLE, TypeTag.DOUBLE, TypeTag.BOOLEAN, LLVMFCmp, LLVMRealOLT),
            };

            setName(GT, ">");
            operators[GT.operatorIndex()] = new[] {
                binary(GT, TypeTag.CHAR, TypeTag.CHAR, TypeTag.BOOLEAN, LLVMICmp, LLVMIntUGT),
                binary(GT, TypeTag.INT, TypeTag.INT, TypeTag.BOOLEAN, LLVMICmp, LLVMIntSGT),
                binary(GT, TypeTag.LONG, TypeTag.LONG, TypeTag.BOOLEAN, LLVMICmp, LLVMIntSGT),
                binary(GT, TypeTag.FLOAT, TypeTag.FLOAT, TypeTag.BOOLEAN, LLVMFCmp, LLVMRealOGT),
                binary(GT, TypeTag.DOUBLE, TypeTag.DOUBLE, TypeTag.BOOLEAN, LLVMFCmp, LLVMRealOGT),
            };

            setName(LE, "<=");
            operators[LE.operatorIndex()] = new[] {
                binary(LE, TypeTag.CHAR, TypeTag.CHAR, TypeTag.BOOLEAN, LLVMICmp, LLVMIntULE),
                binary(LE, TypeTag.INT, TypeTag.INT, TypeTag.BOOLEAN, LLVMICmp, LLVMIntSLE),
                binary(LE, TypeTag.LONG, TypeTag.LONG, TypeTag.BOOLEAN, LLVMICmp, LLVMIntSLE),
                binary(LE, TypeTag.FLOAT, TypeTag.FLOAT, TypeTag.BOOLEAN, LLVMFCmp, LLVMRealOLE),
                binary(LE, TypeTag.DOUBLE, TypeTag.DOUBLE, TypeTag.BOOLEAN, LLVMFCmp, LLVMRealOLE),
            };

            setName(GE, ">=");
            operators[GE.operatorIndex()] = new[] {
                binary(GE, TypeTag.CHAR, TypeTag.CHAR, TypeTag.BOOLEAN, LLVMICmp, LLVMIntUGE),
                binary(GE, TypeTag.INT, TypeTag.INT, TypeTag.BOOLEAN, LLVMICmp, LLVMIntSGE),
                binary(GE, TypeTag.LONG, TypeTag.LONG, TypeTag.BOOLEAN, LLVMICmp, LLVMIntSGE),
                binary(GE, TypeTag.FLOAT, TypeTag.FLOAT, TypeTag.BOOLEAN, LLVMFCmp, LLVMRealOGE),
                binary(GE, TypeTag.DOUBLE, TypeTag.DOUBLE, TypeTag.BOOLEAN, LLVMFCmp, LLVMRealOGE),
            };

            setName(SHL, "<<");
            operators[SHL.operatorIndex()] = new[] {
                binary(SHL, TypeTag.INT, TypeTag.INT, TypeTag.INT, LLVMShl),
                binary(SHL, TypeTag.INT, TypeTag.LONG, TypeTag.INT, LLVMShl),
                binary(SHL, TypeTag.LONG, TypeTag.INT, TypeTag.LONG, LLVMShl),
                binary(SHL, TypeTag.LONG, TypeTag.LONG, TypeTag.LONG, LLVMShl),
            };

            setName(SHR, ">>");
            operators[SHR.operatorIndex()] = new[] {
                binary(SHR, TypeTag.INT, TypeTag.INT, TypeTag.INT, LLVMLShr),
                binary(SHR, TypeTag.INT, TypeTag.LONG, TypeTag.INT, LLVMLShr),
                binary(SHR, TypeTag.LONG, TypeTag.INT, TypeTag.LONG, LLVMLShr),
                binary(SHR, TypeTag.LONG, TypeTag.LONG, TypeTag.LONG, LLVMLShr),
            };

            setName(PLUS, "+");
            operators[PLUS.operatorIndex()] = new[] {
                binary(PLUS, TypeTag.INT, TypeTag.INT, TypeTag.INT, LLVMAdd),
                binary(PLUS, TypeTag.LONG, TypeTag.LONG, TypeTag.LONG, LLVMAdd),
                binary(PLUS, TypeTag.FLOAT, TypeTag.FLOAT, TypeTag.FLOAT, LLVMFAdd),
                binary(PLUS, TypeTag.DOUBLE, TypeTag.DOUBLE, TypeTag.DOUBLE, LLVMFAdd),
            };

            setName(MINUS, "-");
            operators[MINUS.operatorIndex()] = new[] {
                binary(MINUS, TypeTag.INT, TypeTag.INT, TypeTag.INT, LLVMSub),
                binary(MINUS, TypeTag.LONG, TypeTag.LONG, TypeTag.LONG, LLVMSub),
                binary(MINUS, TypeTag.FLOAT, TypeTag.FLOAT, TypeTag.FLOAT, LLVMFSub),
                binary(MINUS, TypeTag.DOUBLE, TypeTag.DOUBLE, TypeTag.DOUBLE, LLVMFSub),
            };

            setName(MUL, "*");
            operators[MUL.operatorIndex()] = new[] {
                binary(MUL, TypeTag.INT, TypeTag.INT, TypeTag.INT, LLVMMul),
                binary(MUL, TypeTag.LONG, TypeTag.LONG, TypeTag.LONG, LLVMMul),
                binary(MUL, TypeTag.FLOAT, TypeTag.FLOAT, TypeTag.FLOAT, LLVMFMul),
                binary(MUL, TypeTag.DOUBLE, TypeTag.DOUBLE, TypeTag.DOUBLE, LLVMFMul),
            };

            setName(DIV, "/");
            operators[DIV.operatorIndex()] = new[] {
                binary(DIV, TypeTag.INT, TypeTag.INT, TypeTag.INT, LLVMSDiv),
                binary(DIV, TypeTag.LONG, TypeTag.LONG, TypeTag.LONG, LLVMSDiv),
                binary(DIV, TypeTag.FLOAT, TypeTag.FLOAT, TypeTag.FLOAT, LLVMFDiv),
                binary(DIV, TypeTag.DOUBLE, TypeTag.DOUBLE, TypeTag.DOUBLE, LLVMFDiv),
            };

            setName(MOD, "%");
            operators[MOD.operatorIndex()] = new[] {
                binary(MOD, TypeTag.INT, TypeTag.INT, TypeTag.INT, LLVMSRem),
                binary(MOD, TypeTag.LONG, TypeTag.LONG, TypeTag.LONG, LLVMSRem),
                binary(MOD, TypeTag.FLOAT, TypeTag.FLOAT, TypeTag.FLOAT, LLVMFRem),
                binary(MOD, TypeTag.DOUBLE, TypeTag.DOUBLE, TypeTag.DOUBLE, LLVMFRem),
            };
        }
Example #10
0
        public DtoShr GenerateDtoShr(SHR entity)
        {
            try
            {
                DtoShr clientDtoShr = new DtoShr();
                Mapper.Initialize(cfg =>
                {
                    cfg.CreateMap <SHR, DtoShr>().ReverseMap();
                    cfg.CreateMap <Entities.CCC.PSmart.PATIENTIDENTIFICATION, DTO.PSmart.PATIENTIDENTIFICATION>()
                    .ReverseMap()
                    .ForMember(x => x.PatientId, opt => opt.Ignore())
                    .ForMember(x => x.PersonId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());
                    cfg.CreateMap <Entities.CCC.PSmart.EXTERNALPATIENTID, DTO.PSmart.EXTERNALPATIENTID>().ReverseMap()
                    .ForMember(x => x.PersonId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());
                    cfg.CreateMap <Entities.CCC.PSmart.INTERNALPATIENTID, DTO.PSmart.INTERNALPATIENTID>().ReverseMap()
                    .ForMember(x => x.PatientId, opt => opt.Ignore())
                    .ForMember(x => x.personId, opt => opt.Ignore());
                    cfg.CreateMap <Entities.CCC.PSmart.PATIENTNAME, DTO.PSmart.PATIENTNAME>().ReverseMap()
                    .ForMember(x => x.PatientId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());

                    cfg.CreateMap <Entities.CCC.PSmart.PHYSICALADDRESS, DTO.PSmart.PHYSICALADDRESS>().ReverseMap()
                    .ForMember(x => x.PersonId, opt => opt.Ignore())
                    .ForMember(x => x.PatientId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());

                    cfg.CreateMap <Entities.CCC.PSmart.PATIENTADDRESS, DTO.PSmart.PATIENTADDRESS>().ReverseMap()
                    .ForMember(x => x.PersonId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());
                    cfg.CreateMap <Entities.CCC.PSmart.MOTHERDETAILS, DTO.PSmart.MOTHERDETAILS>().ReverseMap()
                    .ForMember(x => x.PersonId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());
                    cfg.CreateMap <Entities.CCC.PSmart.MOTHERNAME, DTO.PSmart.MOTHERNAME>().ReverseMap()
                    .ForMember(x => x.PersonId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());
                    cfg.CreateMap <Entities.CCC.PSmart.MOTHERIDENTIFIER, DTO.PSmart.MOTHERIDENTIFIER>().ReverseMap()
                    .ForMember(x => x.PersonId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());
                    cfg.CreateMap <Entities.CCC.PSmart.NEXTOFKIN, DTO.PSmart.NEXTOFKIN>().ReverseMap()
                    .ForMember(x => x.PersonId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());
                    cfg.CreateMap <Entities.CCC.PSmart.NOKNAME, DTO.PSmart.NOKNAME>().ReverseMap()
                    .ForMember(x => x.PersonId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());
                    cfg.CreateMap <Entities.CCC.PSmart.HIVTEST, DTO.PSmart.HIVTEST>().ReverseMap()
                    .ForMember(x => x.PatientId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());
                    cfg.CreateMap <Entities.CCC.PSmart.PROVIDERDETAILS, DTO.PSmart.PROVIDERDETAILS>().ReverseMap()
                    .ForMember(x => x.PatientId, opt => opt.Ignore())
                    .ForMember(x => x.PersonId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());
                    cfg.CreateMap <Entities.CCC.PSmart.IMMUNIZATION, DTO.PSmart.IMMUNIZATION>().ReverseMap()
                    .ForMember(x => x.PatientId, opt => opt.Ignore())
                    .ForMember(x => x.PersonId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());
                    cfg.CreateMap <Entities.CCC.PSmart.CARDDETAILS, DTO.PSmart.CARDDETAILS>().ReverseMap()
                    .ForMember(x => x.PatientId, opt => opt.Ignore())
                    .ForMember(x => x.PersonId, opt => opt.Ignore())
                    .ForMember(x => x.CardSerialNumber, opt => opt.Ignore());
                });
                clientDtoShr = Mapper.Map <DtoShr>(entity);
                return(clientDtoShr);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Example #11
0
        public DtoShr ShrMessageDto(SHR entity)
        {
            var hivtestList           = new List <DTO.PSmart.HIVTEST>();
            var immunizationList      = new List <DTO.PSmart.IMMUNIZATION>();
            var nextOfKinList         = new List <DTO.PSmart.NEXTOFKIN>();
            var internalIdentfierList = new List <DTO.PSmart.INTERNALPATIENTID>();
            var motherIdentifierList  = new List <DTO.PSmart.MOTHERIDENTIFIER>();

            try
            {
                foreach (var hivTest in entity.HIV_TEST)
                {
                    var internalHivTest = new DTO.PSmart.HIVTEST()
                    {
                        DATE             = hivTest.DATE, //?.ToString("yyyyMMdd") ?? "",
                        FACILITY         = hivTest.FACILITY,
                        PROVIDER_DETAILS =
                        {
                            ID   = hivTest.PROVIDER_DETAILS.ID,
                            NAME = hivTest.PROVIDER_DETAILS.NAME
                        },
                        RESULT   = hivTest.RESULT,
                        STRATEGY = hivTest.STRATEGY,
                        TYPE     = hivTest.TYPE
                    };
                    hivtestList.Add(internalHivTest);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            foreach (var imm in entity.IMMUNIZATION)
            {
                var internalImmunization = new IMMUNIZATION()
                {
                    NAME = imm.NAME,
                    DATE_ADMINISTERED = imm.DATE_ADMINISTERED
                };
                immunizationList.Add(internalImmunization);
            }

            foreach (var nextofKin in entity.NEXT_OF_KIN)
            {
                var internalNextofKin = new NEXTOFKIN()
                {
                    ADDRESS       = nextofKin.ADDRESS,
                    CONTACT_ROLE  = nextofKin.CONTACT_ROLE,
                    DATE_OF_BIRTH = nextofKin.DATE_OF_BIRTH,
                    NOK_NAME      =
                    {
                        FIRST_NAME  = nextofKin.NOK_NAME.FIRST_NAME,
                        LAST_NAME   = nextofKin.NOK_NAME.LAST_NAME,
                        MIDDLE_NAME = nextofKin.NOK_NAME.MIDDLE_NAME
                    },
                    PHONE_NUMBER = nextofKin.PHONE_NUMBER,
                    RELATIONSHIP = nextofKin.RELATIONSHIP,
                    SEX          = nextofKin.SEX
                };
                nextOfKinList.Add(internalNextofKin);
            }

            foreach (var internalidentifier in entity.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID)
            {
                var identifier = new INTERNALPATIENTID()
                {
                    ASSIGNING_AUTHORITY = internalidentifier.ASSIGNING_AUTHORITY,
                    ASSIGNING_FACILITY  = internalidentifier.ASSIGNING_FACILITY,
                    ID = internalidentifier.ID,
                    IDENTIFIER_TYPE = internalidentifier.IDENTIFIER_TYPE,
                };
                internalIdentfierList.Add(identifier);
            }

            foreach (var identifier in entity.PATIENT_IDENTIFICATION.MOTHER_DETAILS.MOTHER_IDENTIFIER)
            {
                var motherIdentifier = new DTO.PSmart.MOTHERIDENTIFIER()
                {
                    IDENTIFIER_TYPE     = identifier.IDENTIFIER_TYPE,
                    ASSIGNING_AUTHORITY = identifier.ASSIGNING_AUTHORITY,
                    ASSIGNING_FACILITY  = identifier.ASSIGNING_FACILITY,
                    ID = identifier.ID
                };
                motherIdentifierList.Add(motherIdentifier);
            }
            //

            var dtoShr = new DtoShr()
            {
                CARD_DETAILS =
                {
                    LAST_UPDATED          = entity.CARD_DETAILS.LAST_UPDATED,
                    LAST_UPDATED_FACILITY = entity.CARD_DETAILS.LAST_UPDATED_FACILITY,
                    REASON = entity.CARD_DETAILS.REASON,
                    STATUS = entity.CARD_DETAILS.STATUS
                },
                HIV_TEST               = hivtestList,
                IMMUNIZATION           = immunizationList,
                NEXT_OF_KIN            = nextOfKinList,
                PATIENT_IDENTIFICATION =
                {
                    DATE_OF_BIRTH           = entity.PATIENT_IDENTIFICATION.DATE_OF_BIRTH,//.ToString("yyyyMMdd"),
                    DATE_OF_BIRTH_PRECISION = entity.PATIENT_IDENTIFICATION.DATE_OF_BIRTH_PRECISION == "1" ? "ESTIMATED" :"EXACT",
                    //  DEATH_DATE = entity.PATIENT_IDENTIFICATION.DEATH_DATE,

                    DEATH_INDICATOR     = entity.PATIENT_IDENTIFICATION.DEATH_INDICATOR,
                    EXTERNAL_PATIENT_ID =
                    {
                        ASSIGNING_AUTHORITY = entity.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ASSIGNING_AUTHORITY,
                        ASSIGNING_FACILITY  = entity.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ASSIGNING_FACILITY,
                        ID                   = entity.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ID,
                        IDENTIFIER_TYPE      = entity.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.IDENTIFIER_TYPE
                    },
                    INTERNAL_PATIENT_ID = internalIdentfierList,
                    MARITAL_STATUS      = entity.PATIENT_IDENTIFICATION.MARITAL_STATUS,
                    MOTHER_DETAILS      =
                    {
                        MOTHER_IDENTIFIER = motherIdentifierList,
                        MOTHER_NAME       =
                        {
                            FIRST_NAME  = entity.PATIENT_IDENTIFICATION.MOTHER_DETAILS.MOTHER_NAME.FIRST_NAME,
                            LAST_NAME   = entity.PATIENT_IDENTIFICATION.MOTHER_DETAILS.MOTHER_NAME.LAST_NAME,
                            MIDDLE_NAME = entity.PATIENT_IDENTIFICATION.MOTHER_DETAILS.MOTHER_NAME.MIDDLE_NAME
                        }
                    }, PATIENT_ADDRESS       =
                    {
                        PHYSICAL_ADDRESS     =
                        {
                            COUNTY           = entity.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.COUNTY,
                            NEAREST_LANDMARK = entity.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.NEAREST_LANDMARK,
                            SUB_COUNTY       = entity.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.SUB_COUNTY,
                            VILLAGE          = entity.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.VILLAGE,
                            WARD             = entity.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.WARD
                        },
                        POSTAL_ADDRESS       = entity.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.POSTAL_ADDRESS
                    }, PATIENT_NAME          =
                    {
                        FIRST_NAME  = entity.PATIENT_IDENTIFICATION.PATIENT_NAME.FIRST_NAME,
                        LAST_NAME   = entity.PATIENT_IDENTIFICATION.PATIENT_NAME.LAST_NAME,
                        MIDDLE_NAME = entity.PATIENT_IDENTIFICATION.PATIENT_NAME.MIDDLE_NAME
                    }
                }
            };

            return(dtoShr);
        }