예제 #1
0
 public IActionResult Generate(Guid id)
 {
     try
     {
         var userSummaries = _summaryService.Generate(id);
         return(Ok(userSummaries));
     }
     catch (Exception e)
     {
         Log.Debug($"Error generating summaries: {e}");
         return(StatusCode(500, "Error generating summaries"));
     }
 }
        public void should_Generate_Client_Summary()
        {
            /*
             *  50E56B13-BBB4-4E62-AA48-A896013F79C7
             *  045F0947-CD80-4E82-8E79-A896013FE740
             */

            var personMatches = _clientService.FindById(new Guid("045F0947-CD80-4E82-8E79-A896013FE740"));

            Assert.NotNull(personMatches);
            var client = personMatches.FirstOrDefault().Person.Clients.FirstOrDefault();

            Assert.NotNull(client);

            var summary = _summaryService.Generate(client).ToList();

            Assert.True(summary.Count > 0);
            foreach (var clientSummary in summary)
            {
                Console.WriteLine(clientSummary);
            }
        }
예제 #3
0
        public IActionResult DownloadClient(string id)
        {
            Guid clientId = Guid.Empty;

            if (string.IsNullOrWhiteSpace(id))
            {
                return(BadRequest());
            }

            try
            {
                clientId = new Guid(id);
            }

            catch
            {
            }

            try
            {
                var personMatches = _clientService.FindById(clientId).ToList();
                var personData    = new List <RemoteClientInfo>();

                foreach (var personMatch in personMatches)
                {
                    var rc = new RemoteClientInfo();

                    rc.Client = personMatch.RemoteClient.Client;

                    foreach (var client in personMatch.Person.Clients)
                    {
                        var isInHts = client.IsInState(LiveState.HtsEnrolled);
                        var isPos   = client.IsInState(LiveState.HtsTestedPos);
                        var isFam   = client.IsFamilyContact();
                        var isPat   = client.IsPartnerContact();

                        var es = new List <EncounterInfo>();
                        foreach (var clientEncounter in client.Encounters)
                        {
                            rc.Client.AlreadyTestedPos = false;
                            var e = Mapper.Map <EncounterInfo>(clientEncounter);
                            e.Obses               = new List <ObsInfo>();
                            e.ObsTestResults      = new List <ObsTestResultInfo>();
                            e.ObsFinalTestResults = new List <ObsFinalTestResultInfo>();
                            e.ObsTraceResults     = new List <ObsTraceResultInfo>();
                            e.ObsLinkages         = new List <ObsLinkageInfo>();

                            e.ObsMemberScreenings    = new List <ObsMemberScreeningInfo>();
                            e.ObsPartnerScreenings   = new List <ObsPartnerScreeningInfo>();
                            e.ObsFamilyTraceResults  = new List <ObsFamilyTraceResultInfo>();
                            e.ObsPartnerTraceResults = new List <ObsPartnerTraceResultInfo>();

                            /*
                             * e.Obses = Mapper.Map<List<ObsInfo>>(clientEncounter.Obses.ToList());
                             * e.ObsTestResults = Mapper.Map<List<ObsTestResultInfo>>(clientEncounter.ObsTestResults.ToList());
                             * e.ObsFinalTestResults = Mapper.Map<List<ObsFinalTestResultInfo>>(clientEncounter.ObsFinalTestResults.ToList());
                             * e.ObsTraceResults = Mapper.Map<List<ObsTraceResultInfo>>(clientEncounter.ObsTraceResults.ToList());
                             * e.ObsLinkages = Mapper.Map<List<ObsLinkageInfo>>(clientEncounter.ObsLinkages.ToList());
                             * e.ObsMemberScreenings = Mapper.Map<List<ObsMemberScreeningInfo>>(clientEncounter.ObsMemberScreenings.ToList());
                             * e.ObsPartnerScreenings = Mapper.Map<List<ObsPartnerScreeningInfo>>(clientEncounter.ObsPartnerScreenings.ToList());
                             * e.ObsFamilyTraceResults = Mapper.Map<List<ObsFamilyTraceResultInfo>>(clientEncounter.ObsFamilyTraceResults.ToList());
                             * e.ObsPartnerTraceResults = Mapper.Map<List<ObsPartnerTraceResultInfo>>(clientEncounter.ObsPartnerTraceResults.ToList());
                             */


                            if (isPos)
                            {
                                rc.Client.AlreadyTestedPos = true;
                                e.ObsTraceResults          =
                                    Mapper.Map <List <ObsTraceResultInfo> >(clientEncounter.ObsTraceResults.ToList());
                                e.ObsLinkages = Mapper.Map <List <ObsLinkageInfo> >(clientEncounter.ObsLinkages.ToList());
                                if (e.EncounterTypeId == new Guid("b262fc32-852f-11e7-bb31-be2e44b06b34") ||
                                    e.EncounterTypeId == new Guid("b262fda4-852f-11e7-bb31-be2e44b06b34"))
                                {
                                    es.Add(e);
                                }
                            }

                            if (isFam)
                            {
                                rc.Client.IsFamilyMember = true;
                                e.ObsMemberScreenings    =
                                    Mapper.Map <List <ObsMemberScreeningInfo> >(
                                        clientEncounter.ObsMemberScreenings.ToList());
                                e.ObsFamilyTraceResults =
                                    Mapper.Map <List <ObsFamilyTraceResultInfo> >(clientEncounter.ObsFamilyTraceResults
                                                                                  .ToList());

                                if (e.EncounterTypeId == new Guid("B262FDA4-877F-11E7-BB31-BE2E44B66B34") ||
                                    e.EncounterTypeId == new Guid("B262FDA4-877F-11E7-BB31-BE2E44B67B34"))
                                {
                                    es.Add(e);
                                }
                            }

                            if (isPat)
                            {
                                rc.Client.IsPartner    = true;
                                e.ObsPartnerScreenings =
                                    Mapper.Map <List <ObsPartnerScreeningInfo> >(clientEncounter.ObsPartnerScreenings
                                                                                 .ToList());
                                e.ObsPartnerTraceResults =
                                    Mapper.Map <List <ObsPartnerTraceResultInfo> >(clientEncounter.ObsPartnerTraceResults
                                                                                   .ToList());

                                if (e.EncounterTypeId == new Guid("B262FDA4-877F-11E7-BB31-BE2E44B68B34") ||
                                    e.EncounterTypeId == new Guid("B262FDA4-877F-11E7-BB31-BE2E44B69B34"))
                                {
                                    es.Add(e);
                                }
                            }
                        }

                        rc.Encounters = es;
                    }

                    if (null != rc.Client && !rc.Client.Id.IsNullOrEmpty())
                    {
                        try
                        {
                            var client   = personMatch.Person.Clients.FirstOrDefault();
                            var summries = _summaryService.Generate(client).ToList();
                            rc.Client.ClientSummaries = Mapper.Map <List <ClientSummaryInfo> >(summries);
                        }
                        catch (Exception e)
                        {
                            Log.Debug($"{e}");
                        }

                        personData.Add(rc);
                    }
                }

                foreach (var remoteClientInfo in personData)
                {
                    //
                }


                return(Ok(personData.FirstOrDefault()));
            }
            catch (Exception e)
            {
                Log.Debug($"Error searching clients: {e}");
                return(StatusCode(500, "Error loading clients"));
            }
        }