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; } }
//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); }
/// 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)); }
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; } }
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); }
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); }
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); }
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; }
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; } }
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; } }
protected abstract Task <bool> Process(PatientMessage message);
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); }