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