private ENCOUNTERS(PLACER_DETAIL placerDetail, PRE_TEST preTest, HIV_TESTS hivTests, NewReferral referral, List <NewTracing> tracing, NewLinkage linkage) { PLACER_DETAIL = placerDetail; PRE_TEST = preTest; HIV_TESTS = hivTests; REFERRAL = referral; TRACING = tracing; LINKAGE = linkage; }
private async Task <IndexClientMessage> CreatePretestEncounters(MESSAGE_HEADER header, PATIENT_IDENTIFICATION pid, ClientStage stagedClient, ClientPretestStage pretest, params LoadAction[] actions) { ENCOUNTERS encounter = null; // PLACER_DETAIL var placerDetail = PLACER_DETAIL.Create(pretest.UserId, pretest.Id); // PRE_TEST PRE_TEST preTest = null; if (actions.Contains(LoadAction.All) || actions.Contains(LoadAction.Pretest)) { preTest = PRE_TEST.Create(pretest); } // HIV_TESTS HIV_TESTS hivTests = null; if (actions.Contains(LoadAction.All) || actions.Contains(LoadAction.Testing)) { var allfinalTests = await _clientFinalTestStageExtractor.Extract(stagedClient.ClientId); var alltests = await _clientTestingStageExtractor.Extract(); var finalTest = allfinalTests.Where(x => x.PretestEncounterId == pretest.Id).ToList() .LastOrDefault(); var tests = alltests.Where(x => x.PretestEncounterId == pretest.Id).ToList(); if (null != finalTest && tests.Any()) { hivTests = HIV_TESTS.Create(tests, finalTest); } } // GET THE LAST ONE encounter = ENCOUNTERS.Create(placerDetail, preTest, hivTests, null, new List <NewTracing>(), null); return(new IndexClientMessage(header, new List <NEWCLIENT> { NEWCLIENT.Create(pid, encounter) }, stagedClient.ClientId)); }
public async Task <IEnumerable <FamilyClientMessage> > Load(Guid?htsClientId = null, params LoadAction[] actions) { var messages = new List <FamilyClientMessage>(); if (!actions.Any()) { actions = new[] { LoadAction.All } } ; // Set Facility var facility = _practiceRepository.GetDefault(); if (null == facility) { throw new Exception($"Default Faciltity Not found"); } // MESSAGE_HEADER var facilityCode = facility.Code; var header = MESSAGE_HEADER.Create(facilityCode); // CLIENT var familyMembers = _clientStageRelationshipRepository.GetAll(x => !x.IsPartner); if (!htsClientId.IsNullOrEmpty()) { familyMembers = familyMembers.Where(x => x.SecondaryClientId == htsClientId); } foreach (var familyMember in familyMembers) { var stagedClient = _clientStageRepository.GetQueued(familyMember.SecondaryClientId); if (null != stagedClient && !stagedClient.IsIndex) { header.UpdateMfl(stagedClient.SiteCode); #region PATIENT_IDENTIFICATION var pid = PARTNER_FAMILY_PATIENT_IDENTIFICATION.Create(stagedClient, familyMember.IndexClientId, familyMember.Relation); #endregion FAMILY_ENCOUNTER encounter = null; if (!actions.Contains(LoadAction.RegistrationOnly)) { PLACER_DETAIL placerDetail = null; FAMILY_SCREENING familyScreening = null; List <FAMILY_TRACING> familyTracings = new List <FAMILY_TRACING>(); #region ENCOUNTERS var screening = await _clientFamilyScreeningStageExtractor.Extract(stagedClient.ClientId); var screeningStage = screening.OrderBy(x => x.ScreeningDate).LastOrDefault(); // PLACER_DETAIL if (null != screeningStage) { placerDetail = PLACER_DETAIL.Create(screeningStage.UserId, screeningStage.Id); // FAMILY_SCREENING if (actions.Contains(LoadAction.All) || actions.Contains(LoadAction.ContactScreenig)) { familyScreening = FAMILY_SCREENING.Create(screeningStage); } } // FAMILY_TRACING if (actions.Contains(LoadAction.All) || actions.Contains(LoadAction.ContactTracing)) { var allTracing = await _clientFamilyTracingStageExtractor.Extract(stagedClient.ClientId); if (allTracing.Any()) { familyTracings = FAMILY_TRACING.Create(allTracing.ToList()); } } #endregion encounter = new FAMILY_ENCOUNTER(placerDetail, familyScreening, familyTracings); } messages.Add(new FamilyClientMessage(header, new List <FAMILY> { new FAMILY(pid, encounter) }, stagedClient.ClientId)); } } return(messages); }
private PretestMessage(MESSAGE_HEADER messageHeader, Guid clientId, List <INTERNAL_PATIENT_ID> patientIds, PLACER_DETAIL placerDetail, PRE_TEST preTest) : base(messageHeader, clientId) { INTERNAL_PATIENT_ID = patientIds; PLACER_DETAIL = placerDetail; PRE_TEST = preTest; }
private TracingMessage(MESSAGE_HEADER messageHeader, Guid clientId, List <INTERNAL_PATIENT_ID> patientIds, PLACER_DETAIL placerDetail, List <NewTracing> tracings) : base(messageHeader, clientId) { INTERNAL_PATIENT_ID = patientIds; PLACER_DETAIL = placerDetail; TRACING = tracings; }
private async Task <IndexClientMessage> CreateNonPretestEncounters(MESSAGE_HEADER header, PATIENT_IDENTIFICATION pid, ClientStage stagedClient, ClientPretestStage lastPretest, params LoadAction[] actions) { ENCOUNTERS encounter = null; // PLACER_DETAIL var lastplacerDetail = PLACER_DETAIL.Create(lastPretest.UserId, lastPretest.Id); // NewReferral NewReferral newReferral = null; if (actions.Contains(LoadAction.All) || actions.Contains(LoadAction.Referral)) { var allReferrals = await _clientReferralStageExtractor.Extract(stagedClient.ClientId); if (allReferrals.Any()) { var referrall = allReferrals.LastOrDefault(); newReferral = NewReferral.Create(referrall); } } // NewTracing var newTracings = new List <NewTracing>(); if (actions.Contains(LoadAction.All) || actions.Contains(LoadAction.Tracing)) { var allTracing = await _clientTracingStageExtractor.Extract(stagedClient.ClientId); if (allTracing.Any()) { newTracings = NewTracing.Create(allTracing.ToList()); } } // NewLinkage NewLinkage newLinkage = null; if (actions.Contains(LoadAction.All) || actions.Contains(LoadAction.Linkage)) { var allLinkages = await _clientLinkageStageExtractor.Extract(stagedClient.ClientId); if (allLinkages.Any()) { var linkage = allLinkages.LastOrDefault(); newLinkage = linkage.HasData ? NewLinkage.Create(linkage) : null; } } if (null == newReferral && !newTracings.Any() && null == newLinkage) { return(null); } encounter = ENCOUNTERS.Create(lastplacerDetail, null, null, newReferral, newTracings, newLinkage); return(new IndexClientMessage(header, new List <NEWCLIENT> { NEWCLIENT.Create(pid, encounter) }, stagedClient.ClientId)); }
public PARTNER_ENCOUNTER(PLACER_DETAIL placerDetail, PARTNER_SCREENING partnerScreening, List <PARTNER_TRACING> tracing) { PLACER_DETAIL = placerDetail; PARTNER_SCREENING = partnerScreening; TRACING = tracing; }
private TestsMessage(MESSAGE_HEADER messageHeader, Guid clientId, List <INTERNAL_PATIENT_ID> patientIds, PLACER_DETAIL placerDetail, HIV_TESTS tests) : base(messageHeader, clientId) { INTERNAL_PATIENT_ID = patientIds; PLACER_DETAIL = placerDetail; HIV_TESTS = tests; }
public PartnerScreening(MESSAGE_HEADER messageHeader, Guid clientId, List <INTERNAL_PATIENT_ID> patientIds, PLACER_DETAIL placerDetail, PARTNER_SCREENING familyScreening) : base(messageHeader, clientId) { INTERNAL_PATIENT_ID = patientIds; PLACER_DETAIL = placerDetail; PARTNER_SCREENING = familyScreening; }
public static ENCOUNTERS Create(PLACER_DETAIL placerDetail, PRE_TEST preTest, HIV_TESTS hivTests, NewReferral referral, List <NewTracing> tracing, NewLinkage linkage) { return(new ENCOUNTERS(placerDetail, preTest, hivTests, referral, tracing, linkage)); }
public PartnerTracing(MESSAGE_HEADER messageHeader, Guid clientId, List <INTERNAL_PATIENT_ID> patientIds, PLACER_DETAIL placerDetail, List <PARTNER_TRACING> tracings) : base(messageHeader, clientId) { INTERNAL_PATIENT_ID = patientIds; PLACER_DETAIL = placerDetail; TRACING = tracings; }
public FAMILY_ENCOUNTER(PLACER_DETAIL placerDetail, FAMILY_SCREENING familyScreening, List <FAMILY_TRACING> tracing) { PLACER_DETAIL = placerDetail; FAMILY_SCREENING = familyScreening; TRACING = tracing; }
private ReferralMessage(MESSAGE_HEADER messageHeader, Guid clientId, List <INTERNAL_PATIENT_ID> patientIds, PLACER_DETAIL placerDetail, NewReferral referral) : base(messageHeader, clientId) { INTERNAL_PATIENT_ID = patientIds; PLACER_DETAIL = placerDetail; REFERRAL = referral; }
private LinkageMessage(MESSAGE_HEADER messageHeader, Guid clientId, List <INTERNAL_PATIENT_ID> patientIds, PLACER_DETAIL placerDetail, NewLinkage linkage) : base(messageHeader, clientId) { INTERNAL_PATIENT_ID = patientIds; PLACER_DETAIL = placerDetail; LINKAGE = linkage; }