private void OnRegister(PatientMessage obj)
        {
            PatientValue  = obj.DataPatient;
            NomPatient    = (string)PatientValue.Nom;
            PrenomPatient = PatientValue.Prenom;
            SelJourNaiss  = int.Parse(PatientValue.DateDeNaissance.Substring(0, 2));
            SelMoisNaiss  = NomMois();
            SelAnneeNaiss = int.Parse(PatientValue.DateDeNaissance.Substring(6, 4));
            string dossier;

            dossier = PatientValue.Nom + PatientValue.Prenom + PatientValue.DateDeNaissance.Substring(0, 2) + PatientValue.DateDeNaissance.Substring(3, 2) + PatientValue.DateDeNaissance.Substring(6, 4);
            Patient p1 = PatientData.RecupInfoPatient(dossier);

            TaillePatient = p1.Taille;
            PoidPatient   = p1.Poid;
            BrasPatient   = p1.Bras;
            if (p1.Sexe.Equals("M"))
            {
                Masculin = true;
            }
            else
            {
                Feminin = true;
            }
        }
Exemple #2
0
        //load the message screen with assigned patient's and their messages with particular user
        // GET: /<controller>/
        public IActionResult Index(string patientid = "")
        {
            List <PatientMessage> lpatientList = new List <PatientMessage>();

            if (!string.IsNullOrEmpty(HttpContext.Session.GetString("UserId")) && !string.IsNullOrEmpty(HttpContext.Session.GetString("UserType")) && HttpContext.Session.GetString("UserType") != "0")
            {
                if (HttpContext.Session.GetString("UserType") == ConstantsVar.Therapist.ToString())
                {
                    lpatientList = IPatient.GetPatientWithStatusByTherapistId(HttpContext.Session.GetString("UserId")).OrderBy(x => x.Patient.PatientName).ToList();
                }
                else if (HttpContext.Session.GetString("UserType") == ConstantsVar.Provider.ToString())
                {
                    lpatientList = IPatient.GetPatientWithStatusByProviderId(HttpContext.Session.GetString("UserId")).OrderBy(x => x.Patient.PatientName).ToList();
                }
                else if (HttpContext.Session.GetString("UserType") == ConstantsVar.Support.ToString())
                {
                    lpatientList = IPatient.GetAllPatientStatus(HttpContext.Session.GetString("UserId")).OrderBy(x => x.Patient.PatientName).ToList();
                }
                if (lpatientList != null && lpatientList.Count > 0)
                {
                    PatientMessage lpatient = (!string.IsNullOrEmpty(patientid) ? lpatientList.FirstOrDefault(x => x.Patient.PatientLoginId == patientid) : lpatientList.FirstOrDefault());
                    ViewBag.Patient   = lpatient.Patient.PatientName;
                    ViewBag.PatientId = lpatient.Patient.PatientLoginId;
                    List <MessageView> lmessages = lIMessageRepository.getMessagesbyTimeZone(lpatient.Patient.PatientLoginId, HttpContext.Session.GetString("UserId"), HttpContext.Session.GetString("timezoneid"));

                    ViewBag.Messages = lmessages.OrderBy(x => x.Datetime);
                }
                ViewBag.PatientList = lpatientList;
            }
            return(View());
        }
        public async Task PostPatientMessageOkRequest()
        {
            // arrange
            TestClient           testClient         = new TestClient();
            const string         endpoint           = "message/post/?id=testpatient";
            const HttpStatusCode expectedStatusCode = HttpStatusCode.OK;
            PatientMessage       patientMessage     = new PatientMessage();

            patientMessage.Title   = "test title";
            patientMessage.Message = "test message";
            string requestBody = JsonConvert.SerializeObject(patientMessage);

            testClient.AddHeader("ApiKey", "testcarer");
            const string expectedResponseBody = "Message sent successfully.";

            // act
            HttpResponseMessage response = await testClient.PostRequest(endpoint, body : requestBody);

            HttpStatusCode actualStatusCode   = response.StatusCode;
            string         actualResponseBody = await response.Content.ReadAsStringAsync();

            // assert
            Assert.Equal(expectedStatusCode, actualStatusCode);
            Assert.Equal(expectedResponseBody, actualResponseBody);
        }
Exemple #4
0
        /// TODO: MOVE
        public static async Task <bool> MessagePatient(DbCtx ctx, string carerApiKey, string patientId, JObject messageJson)
        {
            try
            {
                var    jsonDict = JObject.FromObject(messageJson).ToObject <Dictionary <string, object> >();
                string title    = (string)jsonDict["Title"];
                string message  = (string)jsonDict["Message"];
                Carer  carer    = (Carer)GetEntityByForeignKey(ctx, carerApiKey, Collection.carers);

                if (carer != null)
                {
                    Patient patient = (Patient) await GetEntityByPrimaryKey(ctx, patientId, Collection.patients);

                    if (patient != null)
                    {
                        PatientMessage messageObj = new PatientMessage()
                        {
                            Read = null, Sent = DateTime.Now, Title = title, Message = message, CarerId = carer.Email
                        };
                        patient.Messages.Add(messageObj);
                        await ctx.SaveChangesAsync();

                        return(true);
                    }
                }

                return(false);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(false);
            }
        }
        public List <PatientMessage> GetAllPatientStatus(string userId)
        {
            List <PatientMessage> msgList = new List <PatientMessage>();
            List <Patient>        result  = null;

            try
            {
                result = (from p in context.Patient
                          select p).ToList();

                if (result != null && result.Count > 0)
                {
                    for (int i = 0; i < result.Count; i++)
                    {
                        PatientMessage lmessage = new PatientMessage();
                        lmessage.Patient = result[i];
                        Messages lmsg = (from m in context.Messages.Where(p => p.UserId == userId && p.PatientId == lmessage.Patient.PatientLoginId)
                                         select m).OrderByDescending(x => x.Datetime).FirstOrDefault();
                        if (lmsg != null)
                        {
                            lmessage.replyStatus = lmsg.SentReceivedFlag;
                        }
                        else
                        {
                            lmessage.replyStatus = 1;
                        }
                        msgList.Add(lmessage);
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(msgList);
        }
 public ActionResult Edit([Bind(Include = "Id,FirstName,LastName,IdentificationType,Identification,Email,Telephone")] PatientMessage patientMessage)
 {
     if (ModelState.IsValid)
     {
         _patientService.Save(patientMessage);
         return(RedirectToAction("Index"));
     }
     return(View(patientMessage));
 }
        // GET: PatientMessages/Delete/5
        public ActionResult Delete(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PatientMessage patientMessage = _patientService.GetById(id.Value);

            if (patientMessage == null)
            {
                return(HttpNotFound());
            }
            return(View(patientMessage));
        }
Exemple #8
0
        public void SavePatientTest()
        {
            PatientMessage patientMessage = new PatientMessage {
                FirstName          = "Integration" + (new Random()).Next(),
                LastName           = "Test",
                Email              = "*****@*****.**",
                Identification     = "INT123",
                Telephone          = "01800-9090",
                IdentificationType = (int)IdentificationType.NationalDocument
            };

            PatientService patientService = new PatientService();

            patientService.Save(patientMessage);
        }
        public static INTERNALPATIENTID getInternalPatientIdCCC(PatientMessage patientMessage)
        {
            try
            {
                INTERNALPATIENTID internalPatientId = new INTERNALPATIENTID();
                internalPatientId.ID = patientMessage.IdentifierValue;
                internalPatientId.IDENTIFIER_TYPE     = "CCC_NUMBER";
                internalPatientId.ASSIGNING_AUTHORITY = "CCC";

                return(internalPatientId);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public IActionResult SendMessage(string id = "")
        {
            try
            {
                ViewBag.PatientId  = id;
                ViewBag.HeaderName = "Message";
                User luser1 = lIUserRepository.getUser(HttpContext.Session.GetString("UserId"));

                User luser = lIUserRepository.getUser(id);

                List <PatientMessage> lpatientList = new List <PatientMessage>();

                if (!string.IsNullOrEmpty(HttpContext.Session.GetString("UserId")) && !string.IsNullOrEmpty(HttpContext.Session.GetString("UserType")) && HttpContext.Session.GetString("UserType") != "0")
                {
                    if (luser.Type == 2)
                    {
                        lpatientList = lIPatient.GetPatientWithStatusByTherapistId(luser.UserId).OrderBy(x => x.Patient.PatientName).ToList();
                    }
                    else if (luser.Type == 3)
                    {
                        lpatientList = lIPatient.GetPatientWithStatusByProviderId(luser.UserId).OrderBy(x => x.Patient.PatientName).ToList();
                    }
                    else if (HttpContext.Session.GetString("UserType") == ConstantsVar.Support.ToString())
                    {
                        lpatientList = lIPatient.GetAllPatientStatus(HttpContext.Session.GetString("UserId")).OrderBy(x => x.Patient.PatientName).ToList();
                    }

                    ViewBag.UserType     = luser.Type;
                    ViewBag.ChatUserName = luser.Name;

                    if (lpatientList != null && lpatientList.Count >= 0 && (luser.Type == 2 || luser.Type == 3))
                    {
                        PatientMessage lpatient = (!string.IsNullOrEmpty(id) ? lpatientList.FirstOrDefault(x => x.Patient.PatientLoginId == luser1.UserId) : lpatientList.FirstOrDefault());
                        ViewBag.Patient   = lpatient.Patient.PatientName;
                        ViewBag.PatientId = lpatient.Patient.PatientLoginId;
                        List <MessageView> lmessages1 = lIMessageRepository.getMessagesbyTimeZone(lpatient.Patient.PatientLoginId, luser.UserId, DateTime.Now.ToString());

                        ViewBag.Messages = lmessages1.OrderBy(x => x.Datetime);
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(View());
        }
        public static PATIENTNAME GetPatientName(PatientMessage patientMessage)
        {
            PATIENTNAME patientname = new PATIENTNAME();

            try
            {
                patientname.FIRST_NAME  = !string.IsNullOrWhiteSpace(patientMessage.FIRST_NAME) ? patientMessage.FIRST_NAME : "";
                patientname.MIDDLE_NAME = !string.IsNullOrWhiteSpace(patientMessage.MIDDLE_NAME) ? patientMessage.MIDDLE_NAME : "";
                patientname.LAST_NAME   = !string.IsNullOrWhiteSpace(patientMessage.LAST_NAME) ? patientMessage.LAST_NAME : "";

                return(patientname);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
 public IActionResult Read([FromHeader(Name = "ApiKey")] string apiKey, [FromQuery(Name = "id")] string messageId)
 {
     try
     {
         PatientMessage message = _ctx.Messages.Find(messageId);
         if (message != null)
         {
             message.Read = DateTime.Now;
             _ctx.SaveChanges();
             return(Ok());
         }
         return(NotFound());
     }
     catch (Exception e)
     {
         return(BadRequest(e));
     }
 }
        // GET: PatientMessages/Edit/5
        public ActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            PatientMessage patientMessage = _patientService.GetById(id.Value);

            IdentificationTypeService identificationTypeService = new IdentificationTypeService();

            ViewBag.IdentificationType = new SelectList(identificationTypeService.GetList(), "Id", "Name", patientMessage?.IdentificationType);

            if (patientMessage == null)
            {
                return(HttpNotFound());
            }
            return(View(patientMessage));
        }
        public static INTERNALPATIENTID getInternalPatientIdNationalId(PatientMessage patientMessage)
        {
            try
            {
                INTERNALPATIENTID internalNationalId = new INTERNALPATIENTID();
                if (!String.IsNullOrWhiteSpace(patientMessage.NATIONAL_ID) && patientMessage.NATIONAL_ID != "99999999")
                {
                    internalNationalId.ID = patientMessage.NATIONAL_ID;
                    internalNationalId.IDENTIFIER_TYPE     = "NATIONAL_ID";
                    internalNationalId.ASSIGNING_AUTHORITY = "GOK";
                }

                return(internalNationalId);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Exemple #15
0
        public bool PushMessageToQueue(PatientMessage message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            try
            {
                _bus.Publish <PatientMessage>(message);
            }
            catch (Exception e)
            {
                Log.Error("An error occurred while attempting to emit an event: {@ex}", e);
                return(false);
            }

            return(true);
        }
Exemple #16
0
        public List <PatientMessage> GetPatientWithStatusByInstallerId(string installerId)
        {
            List <PatientMessage> msgList = new List <PatientMessage>();
            List <Patient>        result  = null;

            try
            {
                List <int> lpatientconfig = (from p in context.PatientConfiguration where p.InstallerId == installerId select p.PatientId).ToList();

                if (lpatientconfig != null && lpatientconfig.Count > 0)
                {
                    result = (from p in context.Patient
                              where lpatientconfig.Contains(p.PatientId)
                              select p).ToList();
                    if (result != null && result.Count > 0)
                    {
                        for (int i = 0; i < result.Count; i++)
                        {
                            PatientMessage lmessage = new PatientMessage();
                            lmessage.Patient = result[i];
                            Messages lmsg = (from m in context.Messages.Where(p => p.UserId == lmessage.Patient.ProviderId && p.PatientId == lmessage.Patient.PatientLoginId)
                                             select m).OrderByDescending(x => x.Datetime).FirstOrDefault();
                            if (lmsg != null)
                            {
                                lmessage.replyStatus = lmsg.SentReceivedFlag;
                            }
                            else
                            {
                                lmessage.replyStatus = 1;
                            }
                            msgList.Add(lmessage);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(msgList);
        }
Exemple #17
0
        protected override async Task <bool> Process(PatientMessage message)
        {
            if (message == null)
            {
                return(false);
            }

            try
            {
                using (var scope = _services.CreateScope())
                    using (var service = scope.ServiceProvider.GetRequiredService <IAppointmentService>())
                    {
                        await service.UpdatePatientIdAsync(message.AppointmentId, message.PatientId);
                    }
            }
            catch (Exception e)
            {
                Console.WriteLine("An error has occurred: {@error}", e);
            }

            return(true);
        }
        public async Task PostPatientMessageUnauthorised()
        {
            // arrange
            TestClient           testClient         = new TestClient();
            const string         endpoint           = "message/post/?id=testpatient";
            const HttpStatusCode expectedStatusCode = HttpStatusCode.Unauthorized;

            testClient.AddHeader("ApiKey", "testcarer_nopatients");
            PatientMessage patientMessage       = new PatientMessage();
            string         requestBody          = JsonConvert.SerializeObject(patientMessage);
            const string   expectedResponseBody = "You are not assigned to this patient.";

            // act
            HttpResponseMessage response = await testClient.PostRequest(endpoint, body : requestBody);

            HttpStatusCode actualStatusCode   = response.StatusCode;
            string         actualResponseBody = await response.Content.ReadAsStringAsync();

            // assert
            Assert.Equal(expectedStatusCode, actualStatusCode);
            Assert.Equal(expectedResponseBody, actualResponseBody);
        }
        public static PatientRegistrationDTO Get(int patientId)
        {
            PatientMessageManager  patientMessageManager = new PatientMessageManager();
            PatientMessage         patientMessage        = patientMessageManager.GetPatientMessageByEntityId(patientId);
            PatientRegistrationDTO registration          = new PatientRegistrationDTO();
            var personIdentifierManager = new PersonIdentifierManager();

            if (patientMessage != null)
            {
                IdentifierManager identifierManager = new IdentifierManager();
                Identifier        identifier        = identifierManager.GetIdentifierByCode("GODS_NUMBER");
                var personIdentifiers = personIdentifierManager.GetPersonIdentifiers(patientMessage.Id, identifier.Id);

                INTERNALPATIENTID internalPatientId = new INTERNALPATIENTID();
                internalPatientId.ID = patientMessage.IdentifierValue;
                internalPatientId.IDENTIFIER_TYPE     = "CCC_NUMBER";
                internalPatientId.ASSIGNING_AUTHORITY = "CCC";


                registration.PATIENT_IDENTIFICATION = registration.PATIENT_IDENTIFICATION == null ? new PATIENTIDENTIFICATION() : registration.PATIENT_IDENTIFICATION;
                registration.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID = registration.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID == null ? new List <INTERNALPATIENTID>() : registration.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID;
                registration.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID = registration.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID == null ? new EXTERNALPATIENTID() : registration.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID;
                registration.PATIENT_IDENTIFICATION.PATIENT_NAME        = registration.PATIENT_IDENTIFICATION.PATIENT_NAME == null ? new PATIENTNAME() : registration.PATIENT_IDENTIFICATION.PATIENT_NAME;
                registration.PATIENT_IDENTIFICATION.MOTHER_NAME         = registration.PATIENT_IDENTIFICATION.MOTHER_NAME == null ? (dynamic)null : registration.PATIENT_IDENTIFICATION.MOTHER_NAME;
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS     = registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS == null ? new PATIENTADDRESS() : registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS;
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS = registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS == null ? new PHYSICAL_ADDRESS() : registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS;
                registration.PATIENT_VISIT = registration.PATIENT_VISIT == null ? new VISIT() : registration.PATIENT_VISIT;
                registration.NEXT_OF_KIN   = registration.NEXT_OF_KIN == null ? new List <NEXTOFKIN>() : registration.NEXT_OF_KIN;

                //External Patient Id
                registration.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ID = personIdentifiers.Count > 0 ? personIdentifiers[0].IdentifierValue : String.Empty;
                registration.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ASSIGNING_AUTHORITY = "MPI";
                registration.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.IDENTIFIER_TYPE     = "GODS_NUMBER";
                //Start setting values
                registration.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalPatientId);
                if (!String.IsNullOrWhiteSpace(patientMessage.NATIONAL_ID) && patientMessage.NATIONAL_ID != "99999999")
                {
                    INTERNALPATIENTID internalNationalId = new INTERNALPATIENTID();
                    internalNationalId.ID = patientMessage.NATIONAL_ID;
                    internalNationalId.IDENTIFIER_TYPE     = "NATIONAL_ID";
                    internalNationalId.ASSIGNING_AUTHORITY = "GOK";

                    registration.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalNationalId);
                }
                //set names
                registration.PATIENT_IDENTIFICATION.PATIENT_NAME.FIRST_NAME  = !string.IsNullOrWhiteSpace(patientMessage.FIRST_NAME) ? patientMessage.FIRST_NAME: "";
                registration.PATIENT_IDENTIFICATION.PATIENT_NAME.MIDDLE_NAME = !string.IsNullOrWhiteSpace(patientMessage.MIDDLE_NAME) ? patientMessage.MIDDLE_NAME : "";
                registration.PATIENT_IDENTIFICATION.PATIENT_NAME.LAST_NAME   = !string.IsNullOrWhiteSpace(patientMessage.LAST_NAME) ? patientMessage.LAST_NAME : "";
                //set DOB
                registration.PATIENT_IDENTIFICATION.DATE_OF_BIRTH           = !string.IsNullOrWhiteSpace(patientMessage.DATE_OF_BIRTH) ? patientMessage.DATE_OF_BIRTH : "";
                registration.PATIENT_IDENTIFICATION.DATE_OF_BIRTH_PRECISION = !string.IsNullOrWhiteSpace(patientMessage.DATE_OF_BIRTH_PRECISION) ? patientMessage.DATE_OF_BIRTH_PRECISION : "";
                //set sex
                registration.PATIENT_IDENTIFICATION.SEX = !string.IsNullOrWhiteSpace(patientMessage.SEX) ? patientMessage.SEX : "";
                //set phone number
                registration.PATIENT_IDENTIFICATION.PHONE_NUMBER = !string.IsNullOrWhiteSpace(patientMessage.MobileNumber) ? patientMessage.MobileNumber : "";
                //set marital status
                registration.PATIENT_IDENTIFICATION.MARITAL_STATUS = !string.IsNullOrWhiteSpace(patientMessage.MARITAL_STATUS) ? patientMessage.MARITAL_STATUS : "";
                //set patient address variables
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.POSTAL_ADDRESS                    = !string.IsNullOrWhiteSpace(patientMessage.PhysicalAddress) ? patientMessage.PhysicalAddress : "";
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.VILLAGE          = !string.IsNullOrWhiteSpace(patientMessage.Village) ? patientMessage.Village : "";
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.WARD             = !string.IsNullOrWhiteSpace(patientMessage.WardName) ? patientMessage.WardName : "";
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.SUB_COUNTY       = !string.IsNullOrWhiteSpace(patientMessage.Subcountyname) ? patientMessage.Subcountyname : "";
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.COUNTY           = !string.IsNullOrWhiteSpace(patientMessage.CountyName) ? patientMessage.CountyName : "";
                registration.PATIENT_IDENTIFICATION.PATIENT_ADDRESS.PHYSICAL_ADDRESS.NEAREST_LANDMARK = !string.IsNullOrWhiteSpace(patientMessage.Landmark) ? patientMessage.Landmark : "";
                //set visit variables
                registration.PATIENT_VISIT.HIV_CARE_ENROLLMENT_DATE = !string.IsNullOrWhiteSpace(patientMessage.DateOfEnrollment) ? patientMessage.DateOfEnrollment : "";
                registration.PATIENT_VISIT.PATIENT_SOURCE           = !string.IsNullOrWhiteSpace(patientMessage.EntryPoint) ? patientMessage.EntryPoint : "";
                registration.PATIENT_VISIT.PATIENT_TYPE             = !string.IsNullOrWhiteSpace(patientMessage.PatientType) ? patientMessage.PatientType : "";
                registration.PATIENT_VISIT.VISIT_DATE = !string.IsNullOrWhiteSpace(patientMessage.DateOfRegistration) ? patientMessage.DateOfRegistration : "";
                //set if patient is dead
                registration.PATIENT_IDENTIFICATION.DEATH_DATE      = !string.IsNullOrWhiteSpace(patientMessage.DateOfDeath) ? patientMessage.DateOfDeath : "";
                registration.PATIENT_IDENTIFICATION.DEATH_INDICATOR = !string.IsNullOrWhiteSpace(patientMessage.DeathIndicator) ? patientMessage.DeathIndicator : "";

                if (!string.IsNullOrWhiteSpace(patientMessage.TFIRST_NAME) && !string.IsNullOrWhiteSpace(patientMessage.TLAST_NAME))
                {
                    NEXTOFKIN treatmentSupporter = new NEXTOFKIN();
                    treatmentSupporter.NOK_NAME.FIRST_NAME  = !string.IsNullOrWhiteSpace(patientMessage.TFIRST_NAME) ? patientMessage.TFIRST_NAME : "";
                    treatmentSupporter.NOK_NAME.MIDDLE_NAME = !string.IsNullOrWhiteSpace(patientMessage.TMIDDLE_NAME) ? patientMessage.TMIDDLE_NAME : "";
                    treatmentSupporter.NOK_NAME.LAST_NAME   = !string.IsNullOrWhiteSpace(patientMessage.TLAST_NAME) ? patientMessage.TLAST_NAME : "";
                    treatmentSupporter.DATE_OF_BIRTH        = !string.IsNullOrWhiteSpace(patientMessage.TDATE_OF_BIRTH) ? patientMessage.TDATE_OF_BIRTH : "";
                    treatmentSupporter.PHONE_NUMBER         = !string.IsNullOrWhiteSpace(patientMessage.TPHONE_NUMBER) ? patientMessage.TPHONE_NUMBER : "";
                    treatmentSupporter.ADDRESS      = !string.IsNullOrWhiteSpace(patientMessage.TADDRESS) ? patientMessage.TADDRESS : "";
                    treatmentSupporter.CONTACT_ROLE = "T";
                    treatmentSupporter.RELATIONSHIP = String.Empty;
                    treatmentSupporter.SEX          = !string.IsNullOrWhiteSpace(patientMessage.TSEX) ? patientMessage.TSEX : "";

                    registration.NEXT_OF_KIN.Add(treatmentSupporter);
                }
            }

            return(registration);
        }
Exemple #20
0
        public static PatientAppointSchedulingDTO Get(int entityId)
        {
            try
            {
                PatientAppointmentMessageManager appointmentManager    = new PatientAppointmentMessageManager();
                PatientAppointmentMessage        appointmentMessage    = appointmentManager.GetPatientAppointmentMessageById(entityId);
                PatientAppointSchedulingDTO      appointmentScheduling = new PatientAppointSchedulingDTO();

                if (appointmentMessage != null)
                {
                    PatientMessageManager patientMessageManager = new PatientMessageManager();
                    PatientMessage        patientMessage        = patientMessageManager.GetPatientMessageByEntityId(appointmentMessage.PatientId);
                    var personIdentifierManager = new PersonIdentifierManager();

                    if (patientMessage != null)
                    {
                        IdentifierManager identifierManager = new IdentifierManager();
                        Identifier        identifier        = identifierManager.GetIdentifierByCode("GODS_NUMBER");
                        var personIdentifiers = personIdentifierManager.GetPersonIdentifiers(patientMessage.Id, identifier.Id);

                        appointmentScheduling.PATIENT_IDENTIFICATION                     = appointmentScheduling.PATIENT_IDENTIFICATION == null ? new APPOINTMENTPATIENTIDENTIFICATION() : appointmentScheduling.PATIENT_IDENTIFICATION;
                        appointmentScheduling.APPOINTMENT_INFORMATION                    = appointmentScheduling.APPOINTMENT_INFORMATION == null ? new List <APPOINTMENT_INFORMATION>() : appointmentScheduling.APPOINTMENT_INFORMATION;
                        appointmentScheduling.PATIENT_IDENTIFICATION.PATIENT_NAME        = appointmentScheduling.PATIENT_IDENTIFICATION.PATIENT_NAME == null ? new PATIENTNAME() : appointmentScheduling.PATIENT_IDENTIFICATION.PATIENT_NAME;
                        appointmentScheduling.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID = appointmentScheduling.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID == null ? new List <INTERNALPATIENTID>() : appointmentScheduling.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID;
                        appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID = appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID == null ? new EXTERNALPATIENTID() : appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID;


                        INTERNALPATIENTID internalPatientId = new INTERNALPATIENTID();
                        internalPatientId.ID = patientMessage.IdentifierValue;
                        internalPatientId.IDENTIFIER_TYPE     = "CCC_NUMBER";
                        internalPatientId.ASSIGNING_AUTHORITY = "CCC";

                        appointmentScheduling.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalPatientId);
                        if (!String.IsNullOrWhiteSpace(patientMessage.NATIONAL_ID) && patientMessage.NATIONAL_ID != "99999999")
                        {
                            INTERNALPATIENTID internalNationalId = new INTERNALPATIENTID();
                            internalNationalId.ID = patientMessage.NATIONAL_ID;
                            internalNationalId.IDENTIFIER_TYPE     = "NATIONAL_ID";
                            internalNationalId.ASSIGNING_AUTHORITY = "GOK";

                            appointmentScheduling.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalNationalId);
                        }

                        //External Patient Id
                        appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ID = personIdentifiers.Count > 0 ? personIdentifiers[0].IdentifierValue : String.Empty;
                        appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ASSIGNING_AUTHORITY = "MPI";
                        appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.IDENTIFIER_TYPE     = "GODS_NUMBER";

                        //set names
                        appointmentScheduling.PATIENT_IDENTIFICATION.PATIENT_NAME.FIRST_NAME  = !string.IsNullOrWhiteSpace(patientMessage.FIRST_NAME) ? patientMessage.FIRST_NAME : "";
                        appointmentScheduling.PATIENT_IDENTIFICATION.PATIENT_NAME.MIDDLE_NAME = !string.IsNullOrWhiteSpace(patientMessage.MIDDLE_NAME) ? patientMessage.MIDDLE_NAME : "";
                        appointmentScheduling.PATIENT_IDENTIFICATION.PATIENT_NAME.LAST_NAME   = !string.IsNullOrWhiteSpace(patientMessage.LAST_NAME) ? patientMessage.LAST_NAME : "";

                        string appointmentReason   = String.Empty;
                        string appointmentType     = String.Empty;
                        string appointmentLocation = String.Empty;
                        string appointmentStatus   = String.Empty;
                        switch (appointmentMessage.AppointmentReason)
                        {
                        case "Pharmacy Refill":
                            appointmentReason = "PHARMACY_REFILL";
                            break;

                        case "Treatment Preparation":
                            appointmentReason = "TREATMENT_PREP";
                            break;

                        case "Lab Tests":
                            appointmentReason = "LAB_TEST";
                            break;

                        case "Follow Up":
                            appointmentReason = "FOLLOWUP";
                            break;

                        default:
                            appointmentReason = "FOLLOWUP";
                            break;
                        }

                        switch (appointmentMessage.AppointmentType)
                        {
                        case "Standard Care":
                            appointmentType = "CLINICAL";
                            break;

                        case "Express Care":
                            appointmentType = "PHARMACY";
                            break;

                        case "Community Based Dispensing":
                            appointmentType = "PHARMACY";
                            break;

                        default:
                            appointmentType = "CLINICAL";
                            break;
                        }

                        switch (appointmentMessage.AppointmentReason)
                        {
                        case "Pharmacy Refill":
                            appointmentLocation = "PHARMACY";
                            break;

                        case "Treatment Preparation":
                            appointmentLocation = "CLINIC";
                            break;

                        case "Lab Tests":
                            appointmentLocation = "LAB";
                            break;

                        case "Follow Up":
                            appointmentLocation = "CLINIC";
                            break;

                        default:
                            appointmentLocation = "CLINIC";
                            break;
                        }

                        switch (appointmentMessage.AppointmentStatus)
                        {
                        case "PreviouslyMissed":
                            appointmentStatus = "MISSED";
                            break;

                        case "CareEnded":
                            appointmentStatus = "CANCELLED";
                            break;

                        case "Met":
                            appointmentStatus = "HONORED";
                            break;

                        case "Missed":
                            appointmentStatus = "MISSED";
                            break;

                        case "Pending":
                            appointmentStatus = "PENDING";
                            break;
                        }

                        //set appointment information
                        APPOINTMENT_INFORMATION appointmentInformation = new APPOINTMENT_INFORMATION()
                        {
                            PLACER_APPOINTMENT_NUMBER = new PLACER_APPOINTMENT_NUMBER()
                            {
                                NUMBER = appointmentMessage.AppointmentId.ToString(),
                                ENTITY = "IQCARE"
                            },
                            APPOINTMENT_REASON         = appointmentReason,
                            APPOINTMENT_TYPE           = appointmentType,
                            APPOINTMENT_DATE           = appointmentMessage.AppointmentDate,
                            APPOINTMENT_PLACING_ENTITY = "IQCARE",
                            APPOINTMENT_LOCATION       = appointmentLocation,
                            ACTION_CODE        = "A",
                            APPOINTMENT_NOTE   = appointmentMessage.Description,
                            APPOINTMENT_STATUS = appointmentStatus
                        };

                        appointmentScheduling.APPOINTMENT_INFORMATION.Add(appointmentInformation);
                    }
                }


                return(appointmentScheduling);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
 private void OnRegister(PatientMessage obj)
 {
     PatientValue = obj.DataPatient;
     LabelPatient = PatientValue.Nom + " " + PatientValue.Prenom;
 }
Exemple #22
0
        public static ObservationResultDTO GetWHOStage(int entityId)
        {
            try
            {
                ObservationResultDTO   observationResult = new ObservationResultDTO();
                PatientWhoStageManager whoStageManager   = new PatientWhoStageManager();
                var whoStage = whoStageManager.GetWhoStageById(entityId);

                if (whoStage != null)
                {
                    LookupLogic lookupLogic = new LookupLogic();
                    PatientMasterVisitManager visitManager            = new PatientMasterVisitManager();
                    PersonIdentifierManager   personIdentifierManager = new PersonIdentifierManager();
                    IdentifierManager         identifierManager       = new IdentifierManager();
                    Identifier            identifier            = identifierManager.GetIdentifierByCode("GODS_NUMBER");
                    PatientMessageManager patientMessageManager = new PatientMessageManager();
                    PatientMessage        patientMessage        = patientMessageManager.GetPatientMessageByEntityId(whoStage.PatientId);
                    PatientMasterVisit    visit = visitManager.GetVisitById(whoStage.PatientMasterVisitId);

                    List <PersonIdentifier> personIdentifiers = personIdentifierManager.GetPersonIdentifiers(patientMessage.Id, identifier.Id);
                    string whoStageString = lookupLogic.GetLookupItemNameByMasterNameItemId(whoStage.WHOStage, "WHOStage");

                    //Initialize default values
                    observationResult.PATIENT_IDENTIFICATION = observationResult.PATIENT_IDENTIFICATION == null ? new OBSERVATIONPATIENTIDENTIFICATION() : observationResult.PATIENT_IDENTIFICATION;
                    observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID = observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID == null ? new List <INTERNALPATIENTID>() : observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID;
                    observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID = observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID == null ? new EXTERNALPATIENTID() : observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID;
                    observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME        = observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME == null ? new PATIENTNAME() : observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME;
                    observationResult.OBSERVATION_RESULT = observationResult.OBSERVATION_RESULT == null ? new List <OBSERVATION_RESULT>() : observationResult.OBSERVATION_RESULT;

                    //External Patient Id
                    observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID = PatientIdentificationSegment.GetExternalPatientId(personIdentifiers);

                    //CCC Number
                    INTERNALPATIENTID internalPatientId = PatientIdentificationSegment.getInternalPatientIdCCC(patientMessage);
                    observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalPatientId);

                    //National ID
                    INTERNALPATIENTID internalNationalId = PatientIdentificationSegment.getInternalPatientIdNationalId(patientMessage);
                    if (internalNationalId != null)
                    {
                        observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalNationalId);
                    }

                    //Patient Names
                    observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME = PatientIdentificationSegment.GetPatientName(patientMessage);

                    //set visitdate value
                    DateTime visitDate       = visit.VisitDate.HasValue ? visit.VisitDate.Value : DateTime.Now;
                    string   observationDate = visitDate.ToString("yyyyMMddHmmss", CultureInfo.InvariantCulture);

                    string observationValue = String.Empty;
                    switch (whoStageString)
                    {
                    case "Stage1":
                        observationValue = "1";
                        break;

                    case "Stage2":
                        observationValue = "2";
                        break;

                    case "Stage3":
                        observationValue = "3";
                        break;

                    case "Stage4":
                        observationValue = "4";
                        break;
                    }
                    //WHO STAGE
                    OBSERVATION_RESULT observation = new OBSERVATION_RESULT()
                    {
                        OBSERVATION_IDENTIFIER = "WHO_STAGE",
                        OBSERVATION_SUB_ID     = "",
                        CODING_SYSTEM          = "WHO",
                        VALUE_TYPE             = "NM",
                        OBSERVATION_VALUE      = observationValue,
                        UNITS = "",
                        OBSERVATION_RESULT_STATUS = "F",
                        OBSERVATION_DATETIME      = observationDate,
                        ABNORMAL_FLAGS            = "N"
                    };

                    observationResult.OBSERVATION_RESULT.Add(observation);
                }

                return(observationResult);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Exemple #23
0
        public static ObservationResultDTO GetVitals(int patientId, int patientMasterVisitId)
        {
            ObservationResultDTO observationResult = new ObservationResultDTO();

            try
            {
                PatientMessageManager patientMessageManager = new PatientMessageManager();
                PatientMessage        patientMessage        = patientMessageManager.GetPatientMessageByEntityId(patientId);
                if (patientMessage != null)
                {
                    PersonIdentifierManager personIdentifierManager = new PersonIdentifierManager();
                    IdentifierManager       identifierManager       = new IdentifierManager();
                    Identifier identifier = identifierManager.GetIdentifierByCode("GODS_NUMBER");

                    //Initialize default values
                    observationResult.PATIENT_IDENTIFICATION = observationResult.PATIENT_IDENTIFICATION == null ? new OBSERVATIONPATIENTIDENTIFICATION() : observationResult.PATIENT_IDENTIFICATION;
                    observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID = observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID == null ? new List <INTERNALPATIENTID>() : observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID;
                    observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID = observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID == null ? new EXTERNALPATIENTID() : observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID;
                    observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME        = observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME == null ? new PATIENTNAME() : observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME;
                    observationResult.OBSERVATION_RESULT = observationResult.OBSERVATION_RESULT == null ? new List <OBSERVATION_RESULT>() : observationResult.OBSERVATION_RESULT;

                    //External Patient Id
                    List <PersonIdentifier> personIdentifiers = personIdentifierManager.GetPersonIdentifiers(patientMessage.Id, identifier.Id);
                    observationResult.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID = PatientIdentificationSegment.GetExternalPatientId(personIdentifiers);

                    //CCC Number
                    INTERNALPATIENTID internalPatientId = PatientIdentificationSegment.getInternalPatientIdCCC(patientMessage);
                    observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalPatientId);

                    //National ID
                    if (!String.IsNullOrWhiteSpace(patientMessage.NATIONAL_ID) && patientMessage.NATIONAL_ID != "99999999")
                    {
                        INTERNALPATIENTID internalNationalId = PatientIdentificationSegment.getInternalPatientIdNationalId(patientMessage);
                        observationResult.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID.Add(internalNationalId);
                    }

                    //Patient Names
                    observationResult.PATIENT_IDENTIFICATION.PATIENT_NAME = PatientIdentificationSegment.GetPatientName(patientMessage);

                    //get vitals observation
                    PatientVitalsMessageManager patientVitalsMessage = new PatientVitalsMessageManager();
                    PatientVitalsMessage        patientVitals        = patientVitalsMessage.GetPatientVitalsMessageByPatientIdPatientMasterVisitId(patientId, patientMasterVisitId);
                    if (patientVitals != null)
                    {
                        OBSERVATION_RESULT observationHeight = new OBSERVATION_RESULT()
                        {
                            OBSERVATION_IDENTIFIER = "START_HEIGHT",
                            OBSERVATION_SUB_ID     = "",
                            CODING_SYSTEM          = "",
                            VALUE_TYPE             = "NM",
                            OBSERVATION_VALUE      = patientVitals.Height.ToString(),
                            UNITS = patientVitals.HeightUnits,
                            OBSERVATION_RESULT_STATUS = "F",
                            OBSERVATION_DATETIME      = patientVitals.VisitDate,
                            ABNORMAL_FLAGS            = "N"
                        };

                        OBSERVATION_RESULT observationWeight = new OBSERVATION_RESULT()
                        {
                            OBSERVATION_IDENTIFIER = "START_WEIGHT",
                            OBSERVATION_SUB_ID     = "",
                            CODING_SYSTEM          = "",
                            VALUE_TYPE             = "NM",
                            OBSERVATION_VALUE      = patientVitals.Weight.ToString(),
                            UNITS = patientVitals.WeightUnits,
                            OBSERVATION_RESULT_STATUS = "F",
                            OBSERVATION_DATETIME      = patientVitals.VisitDate,
                            ABNORMAL_FLAGS            = "N"
                        };

                        observationResult.OBSERVATION_RESULT.Add(observationHeight);
                        observationResult.OBSERVATION_RESULT.Add(observationWeight);
                    }
                }

                return(observationResult);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Exemple #24
0
 protected abstract Task <bool> Process(PatientMessage message);
Exemple #25
0
        public async Task <PatientDTO> Handle(CreatePatientCommand request, CancellationToken cancellationToken)
        {
            bool tableInsertStatus;

            try
            {
                _patient = await _patientRepository.AddAsync(request.PatientDTO);

                using (EventProducer eventProducer = _eventStore.CreateEventProducer())
                {
                    EventData eventData = eventProducer.CreateEventData(_patient, "Patient-Creation-Pending");
                    eventProducer.SendEvent($"Patient-{_patient.ID}", eventData);
                }
                tableInsertStatus = true;
            }
            catch (Exception)
            {
                tableInsertStatus = false;
            }
            if (tableInsertStatus == true)
            {
                try
                {
                    PatientMessage patientMessage = new PatientMessage("PatientCreated", _patient);
                    var            message        = await _client.SendObjectMessageAsync("EmailQueue", patientMessage);

                    using (EventProducer eventProducer = _eventStore.CreateEventProducer())
                    {
                        EventData eventData = eventProducer.CreateEventData(message, "PatientCreatedConfirmation-Sent");
                        eventProducer.SendEvent($"AMQMessages-Patient-{_patient.ID}", eventData);
                    }
                }
                catch (Exception)
                {
                    await _patientRepository.DeleteAsync(_patient.ID);

                    using (EventProducer eventProducer = _eventStore.CreateEventProducer())
                    {
                        EventData eventData = eventProducer.CreateEventData(_patient, "Patient-Creation-Rollback");
                        eventProducer.SendEvent($"Patient-{_patient.ID}", eventData);
                    }
                    tableInsertStatus = false;
                }
            }
            using (EventConsumer eventConsumer = _eventStore.CreateEventConsumer($"AMQMessages-Patient-{_patient.ID}", "EmailCheck"))
            {
                bool eventFound = false;
                while (eventFound == false)
                {
                    var events = await eventConsumer.ReadStreamEventsForwardAsync();

                    if (eventConsumer.FindEventType(events, "EmailConfirmation-Sent"))
                    {
                        eventFound       = true;
                        _workerSucceeded = true;
                    }
                    else if (eventConsumer.FindEventType(events, "EmailConfirmation-Failed"))
                    {
                        eventFound       = true;
                        _workerSucceeded = false;
                    }
                }
            }
            if (_workerSucceeded == false)
            {
                await _patientRepository.DeleteAsync(_patient.ID);

                using (EventProducer eventProducer = _eventStore.CreateEventProducer())
                {
                    EventData eventData = eventProducer.CreateEventData(_patient, "Patient-Creation-Rollback");
                    eventProducer.SendEvent($"Patient-{_patient.ID}", eventData);
                }
                tableInsertStatus = false;
            }
            if (tableInsertStatus == false)
            {
                return(null);
            }
            using (EventProducer eventProducer = _eventStore.CreateEventProducer())
            {
                EventData eventData = eventProducer.CreateEventData(_patient, "Patient-Creation-Committed");
                eventProducer.SendEvent($"Patient-{_patient.ID}", eventData);
            }
            return(_patient);
        }