コード例 #1
0
 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;
 }
コード例 #2
0
        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));
        }
コード例 #3
0
 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));
 }
コード例 #4
0
 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;
 }