Ejemplo n.º 1
0
        public void should_Create_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));
        }
Ejemplo n.º 2
0
 public EncounterCreated(IQVisitType visitType, Encounter encounter, IQLocation location, List <MConcept> mConcepts, List <LookupHTS> lookupshts)
 {
     DateOccurred = DateTime.Now;
     VisitType    = visitType;
     Encounter    = encounter;
     Location     = location;
     MConcepts    = mConcepts;
     LookupsHts   = lookupshts;
 }
Ejemplo n.º 3
0
        public void Handle(PatientCreated args)
        {
            //TODO: Remove hard codede ModuleID,VisitType,LocationID values

            _sqlActions = new List <SqlAction>();
            _patient    = args.Patient;
            _location   = args.Location;
            _module     = args.Module;
            _visittype  = args.VisitType;

            _notification = $"Creating Patient[{args.Patient}] Encounters[{args.Patient.Encounters?.Count ?? 0}]";
            Log.Debug(_notification);
            GenerateSqlActions();
        }
        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();
        }
Ejemplo n.º 5
0
        public PatientCreated(Patient patient, IQLocation location)
        {
            Patient      = patient;
            Location     = location;
            DateOccurred = DateTime.Now;

            //TODO: Remove hard codede ModuleID,VisitType,LocationID values

            Module = new IQModule()
            {
                ModuleID = 5
            };
            VisitType = new IQVisitType()
            {
                VisitTypeID = 219
            };
        }
Ejemplo n.º 6
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"));
        }
Ejemplo n.º 7
0
        public void should_Create_Patient()
        {
            testIQPatientId = -1;
            var patient = _testPatients.First();

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

            Assert.NotNull(location);
            _createEmrPatientHandler.Handle(new PatientCreated(patient, location));
            Debug.Print(_createEmrPatientHandler.GetNotification());
            Assert.That(_createEmrPatientHandler.GetSqlActions(), Is.Not.Empty);
            //Debug.Print(_createEmrPatientHandler.GetSqlActionsBatch());

            _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);
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [mst_Patient] where Ptn_Pk in ({testIQPatientId})"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [DTL_FBCUSTOMFIELD_Patient_Registration] where Ptn_Pk in ({testIQPatientId})"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQueryStringResult($"SELECT IQNumber FROM mst_Patient WHERE Ptn_Pk = {testIQPatientId}"), Is.StringContaining("IQ-"));

            foreach (var t in _factory.GetIQTables())
            {
                Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  {t} where Ptn_Pk in ({testIQPatientId})"), Is.EqualTo(1));
            }

            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [ord_Visit] where Ptn_Pk in ({testIQPatientId}) AND VisitType=12"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [ord_Visit] where Ptn_Pk in ({testIQPatientId}) AND VisitType=115"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [lnk_patientprogramstart] where Ptn_Pk in ({testIQPatientId}) AND ModuleID=5"), Is.EqualTo(1));

            Debug.Print($"From Android:{patient}!");
            Debug.Print(new string('-', 15));
            Debug.Print($"New Patient:{iqpatient.ToStringDetail()}");
        }
Ejemplo n.º 8
0
 public EncounterCreated(Guid patientSyncId, IQVisitType visitType, Encounter encounter, IQLocation location, List <MConcept> mConcepts, List <LookupHTS> lookupshts) : this(visitType, encounter, location, mConcepts, lookupshts)
 {
     PatientSyncId = patientSyncId;
 }
Ejemplo n.º 9
0
        public void should_Update_Patient()
        {
            testIQPatientId = -1;
            var patient = _testPatients.First();

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

            Assert.NotNull(location);
            _createEmrPatientHandler.Handle(new PatientCreated(patient, location));
            _emrRepository.CreatePatient(_createEmrPatientHandler.GetSqlActions(), patient.UuId);

            var iqpatient = _emrRepository.GetPatient(patient.UuId);

            Assert.NotNull(iqpatient);
            Debug.Print($"From Android:{patient}!");
            Assert.That(iqpatient.ClientCode, Is.EqualTo(patient.Clientcode));
            testIQPatientId = iqpatient.Id;

            /////
            patient.Lastname   = "Kimani";
            patient.Clientcode = "KKK";
            _uow = new UnitOfWork(new SyncContext());
            _uow.PatientRepository.Update(patient);
            _uow.Commit();

            _uow = new UnitOfWork(new SyncContext());
            var updatedPatient = _uow.PatientRepository.FindById(patient.Id);

            Assert.NotNull(updatedPatient);
            Assert.AreEqual(updatedPatient.UuId, patient.UuId);
            Assert.AreEqual("Kimani", updatedPatient.Lastname);
            Assert.AreEqual("KKK", updatedPatient.Clientcode);

            _createEmrPatientHandler.Handle(new PatientCreated(updatedPatient, location));
            _emrRepository.CreatePatient(_createEmrPatientHandler.GetSqlActions(), updatedPatient.UuId);

            _emrRepository = new EmrRepository();
            var iqpatientUpdated = _emrRepository.GetPatient(updatedPatient.UuId);

            Assert.NotNull(iqpatientUpdated);
            Assert.That(iqpatientUpdated.ClientCode, Is.EqualTo(updatedPatient.Clientcode));
            Assert.That(iqpatientUpdated.LastName, Is.EqualTo(updatedPatient.Lastname));
            Assert.AreEqual(testIQPatientId, iqpatientUpdated.Id);

            Assert.True(testIQPatientId > -1);
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [mst_Patient] where Ptn_Pk in ({testIQPatientId})"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [DTL_FBCUSTOMFIELD_Patient_Registration] where Ptn_Pk in ({testIQPatientId})"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQueryStringResult($"SELECT IQNumber FROM mst_Patient WHERE Ptn_Pk = {testIQPatientId}"), Is.StringContaining("IQ-"));

            foreach (var t in _factory.GetIQTables())
            {
                Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  {t} where Ptn_Pk in ({testIQPatientId})"), Is.EqualTo(1));
            }

            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [ord_Visit] where Ptn_Pk in ({testIQPatientId}) AND VisitType=12"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [ord_Visit] where Ptn_Pk in ({testIQPatientId}) AND VisitType=115"), Is.EqualTo(1));
            Assert.That(_emrRepository.ExecuteQuery($"select count(Ptn_Pk)  from  [lnk_patientprogramstart] where Ptn_Pk in ({testIQPatientId}) AND ModuleID=5"), Is.EqualTo(1));


            Debug.Print($"Udated to:{updatedPatient}!");
            Debug.Print(new string('-', 15));
            Debug.Print($"New Patient:{iqpatientUpdated.ToStringDetail()}");
        }