Beispiel #1
0
        private bool CheckClientState()
        {
            //HIV Test Form
            if (Id == new Guid("b25ec568-852f-11e7-bb31-be2e44b06b34"))
            {
                return(ClientState.IsInState(ClientStates, LiveState.HtsConsented));
            }

            //HTS Linkage Form
            if (Id == new Guid("b25ec112-852f-11e7-bb31-be2e44b06b34"))
            {
                return(ClientState.IsInAnyState(ClientStates, LiveState.HtsTestedPos, LiveState.HtsTestedInc, LiveState.HtsCanBeReferred));
            }

            //Member Tracing
            if (Id == new Guid("b25ec112-852f-11e7-bb31-be2e45b06b36") &&
                null != IndexClientId && !IndexClientId.Value.IsNullOrEmpty())
            {
                return(ClientState.IsInState(ClientStates, IndexClientId.Value, LiveState.FamilyEligibileYes));
            }

            //Partner Tracing
            if (Id == new Guid("b25ec112-852f-11e7-bb31-be2e46b06b38") &&
                null != IndexClientId && !IndexClientId.Value.IsNullOrEmpty())
            {
                return(ClientState.IsInState(ClientStates, IndexClientId.Value, LiveState.PartnerEligibileYes));
            }
            return(false);
        }
Beispiel #2
0
 private bool CheckCanStart()
 {
     //HTS Linkage Form
     if (Id == new Guid("b25ec112-852f-11e7-bb31-be2e44b06b34"))
     {
         return(ClientState.IsInAnyState(ClientStates, LiveState.HtsTestedPos, LiveState.HtsTestedInc));
     }
     return(false);
 }
        public void SaveDownloaded(Client client)
        {
            InsertOrUpdate(client);

            // Check if Has ever been tested

            if (!ClientState.IsInState(client.ClientStates.ToList(), LiveState.HtsTested))
            {
                if (ClientState.IsInAnyState(client.ClientStates.ToList(), LiveState.HtsTestedNeg, LiveState.HtsTestedPos,
                                             LiveState.HtsTestedInc))
                {
                    client.ClientStates.Add(new ClientState(client.Id, LiveState.HtsTested));
                }
            }

            var testedPos = null != client.ClientSummaries &&
                            client.ClientSummaries.Any(x => x.Area == "Testing" && (x.Report == "Positive" || x.Report == "Inconclusive"));

            if (!ClientState.IsInState(client.ClientStates.ToList(), LiveState.HtsTestedNeg, LiveState.HtsRetestedNeg) || testedPos)
            {
                client.ClientStates.Add(new ClientState(client.Id, LiveState.HtsCanBeReferred));
            }

            var testedPosOnly = null != client.ClientSummaries &&
                                client.ClientSummaries.Any(x => x.Area == "Testing" && (x.Report == "Positive"));

            if (testedPos)
            {
                client.ClientStates.Add(new ClientState(client.Id, LiveState.HtsCanBeLinked));
            }

            var states = client.ClientStates.Where(x => x.Status == LiveState.HtsEnrolled ||
                                                   x.Status == LiveState.HtsSmartCardEnrolled ||
                                                   x.Status == LiveState.HtsFamAcceptedYes ||
                                                   x.Status == LiveState.HtsPnsAcceptedYes ||
                                                   x.Status == LiveState.HtsTested ||
                                                   x.Status == LiveState.HtsCanBeReferred ||
                                                   x.Status == LiveState.HtsCanBeLinked);

            foreach (var clientState in states)
            {
                var rowsAffected = _db.Update(clientState);
                if (rowsAffected == 0)
                {
                    _db.Insert(clientState);
                }
            }

            foreach (var clientSummary in client.ClientSummaries)
            {
                var rowsAffected = _db.Update(clientSummary);
                if (rowsAffected == 0)
                {
                    _db.Insert(clientSummary);
                }
            }
        }