Пример #1
0
        public static HIV_TESTS Create(List <ClientTestingStage> tests, ClientFinalTestStage stage)
        {
            var screening    = NewTests.Create(tests.Where(x => x.HtsTestType == HtsTestType.Screening));
            var confirmatory = NewTests.Create(tests.Where(x => x.HtsTestType == HtsTestType.Confrimatory));
            var summary      = Encounters.SUMMARY.Create(stage);

            return(new HIV_TESTS(screening, confirmatory, summary));
        }
Пример #2
0
 internal static SUMMARY Create(ClientFinalTestStage stage)
 {
     return(new SUMMARY(
                stage.ScreeningResult,
                stage.ConfirmatoryResult.Value,
                stage.FinalResult,
                stage.FinalResultGiven,
                stage.CoupleDiscordant.Value,
                stage.PnsAccepted.Value,
                stage.PnsDeclineReason.Value, stage.Remarks
                ));
 }
Пример #3
0
        public async Task <IEnumerable <ClientFinalTestStage> > Extract(Guid?htsClientId = null)
        {
            var subscriber = await _subscriberSystemRepository.GetDefaultAsync();

            if (null == subscriber)
            {
                throw new Exception("Default EMR NOT SET");
            }
            var clients = new List <ClientFinalTestStage>();

            var encounters = _clientEncounterRepository.GetFinalTesting(htsClientId);

            foreach (var encounter in encounters)
            {
                var pretestId =
                    _clientEncounterRepository.GetPretestEncounterId(encounter.ClientId, encounter.EncounterDate);

                clients.AddRange(ClientFinalTestStage.Create(encounter, subscriber, pretestId));
            }

            return(clients.Where(x => !x.Id.IsNullOrEmpty()));
        }