Exemplo n.º 1
0
        public static ClientPretestStage Create(HtsEncounterType encounterType, Encounter obsEncounter, SubscriberSystem subscriber)
        {
            ClientPretestStage clientStage = null;

            if (obsEncounter.Obses.Any())
            {
                clientStage        = new ClientPretestStage();
                clientStage.UserId = subscriber.GetEmrUserId(obsEncounter.UserId);
                var obses = obsEncounter.Obses.ToList();
                clientStage.Id                  = obsEncounter.Id;
                clientStage.EncounterDate       = obsEncounter.EncounterDate;
                clientStage.EncounterType       = encounterType;
                clientStage.TestedAs            = GetObsValue(obses, "TestedAs", subscriber, "B260401E-852F-11E7-BB31-BE2E44B06B34", true, "0").SafeConvert <int>();
                clientStage.TbScreening         = GetObsValue(obses, "TbScreening", subscriber, "B2605F54-852F-11E7-BB31-BE2E44B06B34", true, "0").SafeConvert <int>();
                clientStage.Remarks             = GetObsValue(obses, "B260665C-852F-11E7-BB31-BE2E44B06B34");
                clientStage.DisabilityIndicator = GetObsValue(obses, "YesNo", subscriber, "B260695C-852F-11E7-BB31-BE2E44B06B34", true, "0").SafeConvert <int>();
                clientStage.Disabilities        = GetDisabilityStages(obses, "B2603C5E-852F-11E7-BB31-BE2E44B06B34", subscriber, clientStage.Id);
                clientStage.EverTested          = GetObsValue(obses, "YesNo", subscriber, "B2603772-852F-11E7-BB31-BE2E44B06B34", true, "0").SafeConvert <int>();
                clientStage.SelfTest12Months    = GetObsValue(obses, "YesNo", subscriber, "B2603773-852F-11E7-BB31-BE2E44B06B34", true, "0").SafeConvert <int>();
                clientStage.Strategy            = GetObsValue(obses, "Strategy", subscriber, "B260417C-852F-11E7-BB31-BE2E44B06B34", true, "0").SafeConvert <int>();
                clientStage.ServicePoint        = GetObsValue(obses, "HTSEntryPoints", subscriber, "B26039A1-852F-11E7-BB31-BE2E44B06B34", true, "0").SafeConvert <int>();
                clientStage.MonthsSinceLastTest = GetObsValue(obses, "B26039A2-852F-11E7-BB31-BE2E44B06B34", true, "0").SafeConvert <decimal>();
                clientStage.Consent             = GetObsValue(obses, "YesNo", subscriber, "B2603DC6-852F-11E7-BB31-BE2E44B06B34", true, "0").SafeConvert <int>();
                clientStage.ClientId            = obsEncounter.ClientId;
            }

            return(clientStage);
        }
Exemplo n.º 2
0
        public static List <ClientFinalTestStage> Create(Encounter testingEncounter, SubscriberSystem subscriber, Guid?pretestEncounterId)
        {
            var stages = new List <ClientFinalTestStage>();

            if (testingEncounter.ObsFinalTestResults.Any())
            {
                var clientStage = new ClientFinalTestStage();
                clientStage.UserId = subscriber.GetEmrUserId(testingEncounter.UserId);

                var testResult = testingEncounter.ObsFinalTestResults.First();
                clientStage.Id = testResult.Id;
                clientStage.PretestEncounterId =
                    pretestEncounterId.IsNullOrEmpty() ? testResult.Id : pretestEncounterId.Value;
                clientStage.ScreeningResult    = subscriber.GetTranslation(testResult.FirstTestResult, "HIVResults", "ObsFinalTestResult.FirstTestResult", "0").SafeConvert <int>();
                clientStage.ConfirmatoryResult = subscriber.GetTranslation(testResult.SecondTestResult, "HIVResults", "ObsFinalTestResult.SecondTestResult", "0").SafeConvert <int>();
                clientStage.FinalResult        = subscriber.GetTranslation(testResult.FinalResult, "HIVFinalResults", "ObsFinalTestResult.FinalResult", "0").SafeConvert <int>();
                clientStage.FinalResultGiven   = subscriber.GetTranslation(testResult.ResultGiven, "YesNo", "ObsFinalTestResult.ResultGiven", "0").SafeConvert <int>();
                clientStage.CoupleDiscordant   = subscriber.GetTranslation(testResult.CoupleDiscordant, "YesNoNA", "ObsFinalTestResult.CoupleDiscordant", "0").SafeConvert <int>();
                clientStage.PnsAccepted        = subscriber.GetTranslation(testResult.SelfTestOption, "YesNo", "ObsFinalTestResult.SelfTestOptions", "0").SafeConvert <int>();
                clientStage.PnsDeclineReason   = subscriber.GetTranslation(testResult.PnsDeclined, "ReasonsPartner", "ObsFinalTestResult.PnsDeclineds", "0").SafeConvert <int>();
                clientStage.Remarks            = testResult.Remarks;
                clientStage.ClientId           = testingEncounter.ClientId;
                stages.Add(clientStage);
            }
            return(stages);
        }
        public static List <ClientFamilyTracingStage> Create(Encounter tracingEncounter, SubscriberSystem subscriber)
        {
            var stages = new List <ClientFamilyTracingStage>();

            if (tracingEncounter.ObsFamilyTraceResults.Any())
            {
                foreach (var traceResult in tracingEncounter.ObsFamilyTraceResults)
                {
                    var tracingStage = new ClientFamilyTracingStage();
                    tracingStage.UserId                  = subscriber.GetEmrUserId(tracingEncounter.UserId);
                    tracingStage.Id                      = traceResult.Id;
                    tracingStage.TracingDate             = traceResult.Date;
                    tracingStage.ReminderDate            = traceResult.Reminder;
                    tracingStage.TracingMode             = subscriber.GetTranslation(traceResult.Mode, "TracingMode", "ObsFamilyTraceResult.Mode", "0").SafeConvert <int>();
                    tracingStage.TracingOutcome          = subscriber.GetTranslation(traceResult.Outcome, "PnsTracingOutcome", "ObsFamilyTraceResult.Outcome", "0").SafeConvert <int>();
                    tracingStage.Consent                 = subscriber.GetTranslation(traceResult.Consent, "YesNo", "ObsFamilyTraceResult.Consent", "0").SafeConvert <int>();
                    tracingStage.ReasonNotContacted      = subscriber.GetTranslation(traceResult.ReasonNotContacted, "TracingReasonNotContacted", "ObsFamilyTraceResult.ReasonNotContacted", "0").SafeConvert <int>();
                    tracingStage.ReasonNotContactedOther = traceResult.ReasonNotContactedOther;
                    tracingStage.BookingDate             = traceResult.BookingDate;
                    tracingStage.ClientId                = tracingEncounter.ClientId;
                    stages.Add(tracingStage);
                }
            }

            return(stages);
        }
Exemplo n.º 4
0
        public static List <ClientTestingStage> Create(Encounter testingEncounter, SubscriberSystem subscriber, Guid?pretestEncounterId)
        {
            var clientTestingStages = new List <ClientTestingStage>();

            if (testingEncounter.ObsTestResults.Any())
            {
                foreach (var testResult in testingEncounter.ObsTestResults)
                {
                    var clientTestingStage = new ClientTestingStage();
                    clientTestingStage.UserId             = subscriber.GetEmrUserId(testingEncounter.UserId);
                    clientTestingStage.Id                 = testResult.Id;
                    clientTestingStage.PretestEncounterId =
                        pretestEncounterId.IsNullOrEmpty() ? testResult.Id : pretestEncounterId.Value;
                    clientTestingStage.HtsTestType = GetTestType(testResult.TestName);
                    clientTestingStage.KitType     = subscriber.GetTranslation(testResult.Kit, "HIVTestKits", "ObsTestResult.Kit", "0").SafeConvert <int>();
                    clientTestingStage.KitOther    = testResult.KitOther;
                    clientTestingStage.LotNumber   = testResult.LotNumber;
                    clientTestingStage.ExpiryDate  = testResult.Expiry.ToIqDateOnly();
                    clientTestingStage.Result      = subscriber.GetTranslation(testResult.Result, "HIVResults", "ObsTestResult.Result", "0").SafeConvert <int>();
                    clientTestingStage.TestRound   = (int)clientTestingStage.HtsTestType;
                    clientTestingStage.ClientId    = testingEncounter.ClientId;

                    clientTestingStages.Add(clientTestingStage);
                }
            }
            return(clientTestingStages);
        }
        public static List <ClientPartnerScreeningStage> Create(Encounter encounter, SubscriberSystem subscriber)
        {
            var clientStages = new List <ClientPartnerScreeningStage>();

            if (encounter.ObsPartnerScreenings.Any())
            {
                foreach (var screening in encounter.ObsPartnerScreenings)
                {
                    var clientStage = new ClientPartnerScreeningStage();
                    clientStage.Id                   = screening.Id;
                    clientStage.UserId               = subscriber.GetEmrUserId(encounter.UserId);
                    clientStage.ScreeningDate        = screening.ScreeningDate;
                    clientStage.PnsAccepted          = subscriber.GetTranslation(screening.PnsAccepted, "YesNo", "ObsPartnerScreening.PnsAccepted", "0").SafeConvert <int>();
                    clientStage.IpvScreeningDone     = subscriber.GetTranslation(screening.IPVScreening, "YesNoNA", "ObsPartnerScreening.IPVScreening", "0").SafeConvert <int>();
                    clientStage.HurtByPartner        = subscriber.GetTranslation(screening.PhysicalAssult, "YesNo", "ObsPartnerScreening.PhysicalAssult", "0").SafeConvert <int>();
                    clientStage.ThreatByPartner      = subscriber.GetTranslation(screening.Threatened, "YesNo", "ObsPartnerScreening.Threatened", "0").SafeConvert <int>();
                    clientStage.SexualAbuseByPartner = subscriber.GetTranslation(screening.SexuallyUncomfortable, "YesNo", "ObsPartnerScreening.SexuallyUncomfortable", "0").SafeConvert <int>();
                    clientStage.IpvOutcome           = subscriber.GetTranslation(screening.IPVOutcome, "IpvOutcome", "ObsPartnerScreening.IPVOutcome", "0").SafeConvert <int>();
                    clientStage.PartnerOccupation    = screening.Occupation;
                    clientStage.PartnerRelationship  = subscriber.GetTranslation(screening.PNSRealtionship, "PNSRelationship", "ObsPartnerScreening.PNSRealtionship", "0").SafeConvert <int>();
                    clientStage.LivingWithClient     = subscriber.GetTranslation(screening.LivingWithClient, "YesNoDeclined", "ObsPartnerScreening.LivingWithClient", "0").SafeConvert <int>();
                    clientStage.HivStatus            = subscriber.GetTranslation(screening.HivStatus, "HivStatus", "ObsPartnerScreening.HivStatus", "0").SafeConvert <int>();
                    clientStage.EligibleForHts       = subscriber.GetTranslation(screening.Eligibility, "YesNo", "ObsPartnerScreening.Eligibility", "0").SafeConvert <int>();
                    clientStage.PnsApproach          = subscriber.GetTranslation(screening.PNSApproach, "PnsApproach", "ObsPartnerScreening.PNSApproach", "0").SafeConvert <int>();
                    clientStage.BookingDate          = screening.BookingDate;
                    clientStage.ClientId             = encounter.ClientId;
                    clientStages.Add(clientStage);
                }
            }

            return(clientStages);
        }
        public static List <ClientFamilyScreeningStage> Create(Encounter encounter, SubscriberSystem subscriber)
        {
            var clientStages = new List <ClientFamilyScreeningStage>();

            if (encounter.ObsMemberScreenings.Any())
            {
                foreach (var screening in encounter.ObsMemberScreenings)
                {
                    var clientStage = new ClientFamilyScreeningStage();
                    clientStage.Id             = screening.Id;
                    clientStage.UserId         = subscriber.GetEmrUserId(encounter.UserId);
                    clientStage.ScreeningDate  = screening.ScreeningDate;
                    clientStage.HivStatus      = subscriber.GetTranslation(screening.HivStatus, "ScreeningHivStatus", "ObsMemberScreening.HivStatus", "0").SafeConvert <int>();
                    clientStage.EligibleForHts = subscriber.GetTranslation(screening.Eligibility, "YesNo", "ObsMemberScreening.Eligibility", "0").SafeConvert <int>();
                    clientStage.BookingDate    = screening.BookingDate;
                    clientStage.Remarks        = screening.Remarks;
                    clientStage.ClientId       = encounter.ClientId;
                    clientStages.Add(clientStage);
                }
            }

            return(clientStages);
        }
Exemplo n.º 7
0
        public static ClientStage Create(Person person, SubscriberSystem subscriber)
        {
            var clientStage = new ClientStage();

            if (null != person.PersonClient)
            {
                clientStage.Id       = person.PersonClient.Id;
                clientStage.ClientId = person.PersonClient.Id;
            }
            else
            {
                clientStage.Id = LiveGuid.NewGuid();
            }


            if (null != person.PersonName)
            {
                clientStage.FirstName  = person.PersonName.FirstName;
                clientStage.MiddleName = person.PersonName.MiddleName;
                clientStage.LastName   = person.PersonName.LastName;
                clientStage.NickName   = person.PersonName.NickName;
                if (person.Addresses.Any())
                {
                    clientStage.Landmark  = person.Addresses.First().Landmark;
                    clientStage.County    = person.Addresses.First().CountyId;
                    clientStage.SubCounty = person.Addresses.First().SubCountyId;
                    clientStage.Ward      = person.Addresses.First().WardId;
                }
                if (person.Contacts.Any())
                {
                    clientStage.Phone = !string.IsNullOrEmpty(person.Contacts.First().Phone)
                        ? person.Contacts.First().Phone
                        : string.Empty;
                }
            }

            clientStage.DateOfBirth          = person.HasDOB() ? person.BirthDate.Value : new DateTime(1900, 1, 1);
            clientStage.DateOfBirthPrecision = person.HasDOBEstimate()
                ? (person.BirthDateEstimated.Value ? "EXACT" : "ESTIMATED")
                : "ESTIMATED";
            clientStage.Sex = subscriber.GetTranslation(person.Gender, "Gender", "0").SafeConvert <int>();

            var clientt = person.PersonClient;

            if (null != clientt)
            {
                clientStage.PracticeId = clientt.PracticeId;
                clientStage.KeyPop     =
                    subscriber.GetTranslation(clientt.KeyPop, "HTSKeyPopulation", "0").SafeConvert <int>();
                clientStage.MaritalStatus = subscriber.GetTranslation(clientt.MaritalStatus, "HTSMaritalStatus", "0")
                                            .SafeConvert <int>();

                clientStage.UserId = subscriber.GetEmrUserId(clientt.UserId);
            }

            //Education
            clientStage.Education = subscriber.GetTranslation(clientt.Education, "EducationalLevel", "0")
                                    .SafeConvert <int>();
            clientStage.Completion = subscriber.GetTranslation(clientt.Completion, "EducationOutcome", "0")
                                     .SafeConvert <int>();

            //Occupation
            clientStage.Occupation = subscriber.GetTranslation(clientt.Occupation, "HTSOccupation", "0")
                                     .SafeConvert <int>();


            clientStage.IsIndex = person.IsHtsClient;
            if (clientStage.IsIndex)
            {
                var client = person.PersonClient;

                if (null != client.HtsEnrollment)
                {
                    clientStage.Serial           = client.HtsEnrollment.Identifier;
                    clientStage.RegistrationDate = client.HtsEnrollment.RegistrationDate;
                }
            }
            else
            {
                clientStage.RegistrationDate = person.ContactRegDate;
            }

            return(clientStage);
        }