public void Handle(EncounterCreated args)
        {
            // TODO: Remove hard codede ModuleID, VisitType, LocationID values

            _sqlActions   = new List <SqlAction>();
            _patient      = args.Patient;
            _location     = args.Location;
            _encounter    = args.Encounter;
            _visitType    = args.VisitType;
            _mConcepts    = args.MConcepts;
            _lookupHtss   = args.LookupsHts;
            _notification = $"Creating Encounter[{args.Encounter},{args.Patient}] Observations[{args.Patient.Encounters.Count}]";
            Log.Debug(_notification);
            GenerateSqlActions();
        }
        public void Setup()
        {
            _factory        = new Factory();
            _uow            = new UnitOfWork(new SyncContext());
            _testEncounters = _factory.GenerateTestEncountersByType(1);
            var _encounter     = _testEncounters.First();
            var _patient       = _testEncounters.First().Patient;
            var _emrRepository = new EmrRepository();
            var _visitType     = _emrRepository.GetVisitTypeByFeature(_encounter.EncounterType.IqcareId.Value);
            var location       = _emrRepository.GetLocation(1024);
            var concepts       = _uow.MConceptRepository.GetAllByEncounterType(_encounter.EncounterTypeId).ToList();
            var htslookups     = _uow.LookupHtsRepository.GetAll().ToList();

            _encounterCreated          = new EncounterCreated(_patient, _visitType, _encounter, location, concepts, htslookups);
            _createEmrEncounterHandler = new CreateEmrEncounterHandler();
        }
Esempio n. 3
0
        public void should_Update_Encounter()
        {
            testIQPatientId = -1;
            var patient = _testEncounters.First().Patient;

            Assert.NotNull(patient);
            IQLocation location = _emrRepository.GetLocation(locationId);

            Assert.NotNull(location);
            _createEmrPatientHandler.Handle(new PatientCreated(patient, location));
            Assert.That(_createEmrPatientHandler.GetSqlActions(), Is.Not.Empty);
            _emrRepository.CreatePatient(_createEmrPatientHandler.GetSqlActions(), patient.UuId);
            var iqpatient = _emrRepository.GetPatient(patient.UuId);

            Assert.NotNull(iqpatient);
            Assert.That(iqpatient.ClientCode, Is.EqualTo(patient.Clientcode));
            testIQPatientId = iqpatient.Id;
            Assert.True(testIQPatientId > -1);
            Debug.Print($"New Patient:{iqpatient.ToStringDetail()}");

            _createEmrEncounterHandler.Handle(_encounterCreated);
            Assert.That(_createEmrEncounterHandler.GetSqlActions(), Is.Not.Empty);
            _emrRepository.CreateEncounter(_createEmrEncounterHandler.GetSqlActions(), patient.UuId);

            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [ord_Visit] where Ptn_Pk in ({testIQPatientId}) AND VisitType=219"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [DTL_FBCUSTOMFIELD_KNH_HTC_Form] where Ptn_Pk in ({testIQPatientId})"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [dtl_fb_MARPsHTC] where Ptn_Pk in ({testIQPatientId})"), Is.EqualTo(2));
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [dtl_fb_DisabilityHTC] where Ptn_Pk in ({testIQPatientId})"), Is.EqualTo(3));


            var e = _testEncounters.First();

            e.Observations.First(x => x.MConceptId == 30).ValueLookup         = 4125;
            e.Observations.First(x => x.MConceptId == 24).ValueNumeric        = 1;
            e.Observations.First(x => x.MConceptId == 48).ValueText           = "Check Later";
            e.Observations.First(x => x.MConceptId == 11).ValueMultipleChoice = "4051";

            _encounterCreated = new EncounterCreated(_testEncounters.First().Patient, _encounterCreated.VisitType, e, _encounterCreated.Location, _encounterCreated.MConcepts, _encounterCreated.LookupsHts);
            _createEmrEncounterHandler.Handle(_encounterCreated);
            _emrRepository.CreateEncounter(_createEmrEncounterHandler.GetSqlActions(), patient.UuId);

            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [ord_Visit] where Ptn_Pk in ({testIQPatientId}) AND VisitType=219"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [DTL_FBCUSTOMFIELD_KNH_HTC_Form] where Ptn_Pk in ({testIQPatientId})"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [dtl_fb_MARPsHTC] where Ptn_Pk in ({testIQPatientId})"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQueryStringResult($"select remarks  from  [DTL_FBCUSTOMFIELD_KNH_HTC_Form] where Ptn_Pk in ({testIQPatientId})"), Is.StringContaining("Check Later"));
        }
        public async Task Handle(EncounterCreated message)
        {
            var obj = this.ParseMessage(message);

            var nhsNumber = obj.Subject.Identifier.Value;
            var patient   = await this.Patients.GetOne(nhsNumber);

            if (patient == null)
            {
                return;
            }

            var clinicalNote = new ClinicalNote
            {
                ClinicalNotesType = "Encounter",
                Notes             = $"Encounter created from INR",
                PatientId         = nhsNumber,
                DateCreated       = obj.Meta?.LastUpdated?.DateTime ?? DateTime.UtcNow,
                Source            = "INR",
                SourceId          = obj.Identifier[0].Value
            };

            await this.ClinicalNotes.AddOrUpdate(clinicalNote);
        }
Esempio n. 5
0
 protected virtual void OnEncounterCreatedEvent(EncounterCreated e)
 {
     EncounterCreatedEvent?.Invoke(this, e);
 }
        public async Task Handle(EncounterCreated message)
        {
            var encounter = this.ParseMessage(message);

            System.Console.WriteLine(encounter.Meta.LastUpdated);
        }
Esempio n. 7
0
 public void CreateEncounter(EncounterCreated args)
 {
     CreateEmrEncounterHandler.Handle(args);
     EmrRepository.CreateEncounter(CreateEmrEncounterHandler.GetSqlActions(), args.Patient.UuId);
 }
Esempio n. 8
0
 protected virtual void EncounterService_EncounterCreatedEvent(object sender, EncounterCreated e)
 {
     CreateEncounter(e);
 }