public async Task <Result <AddPersonIdentifierResponse> > Handle(PersonIdentifierCommand request, CancellationToken cancellationToken) { PersonIdentifier pm = new PersonIdentifier(); try { if (request.PersonId > 0) { PersonIdentifierManager idm = new PersonIdentifierManager(); pm = idm.GetCurrentPersonIdentifier(request.PersonId, request.IdentifierId); if (pm != null) { res = await Task.Run(() => idm.UpdatePersondentifier(request.PersonId, request.IdentifierId, request.IdentifierValue, request.UserId)); if (res > 0) { msg = "PersonIdentifier updated successfully"; } } else { res = await Task.Run(() => idm.AddPersonIdentifier(request.UserId, request.IdentifierId, request.IdentifierValue, request.UserId)); if (res > 0) { msg = "PersonIdentifier Added successfully for PersonId" + request.PersonId; } } } return(Result <AddPersonIdentifierResponse> .Valid(new AddPersonIdentifierResponse() { Message = msg } )); } catch (Exception e) { return(Result <AddPersonIdentifierResponse> .Invalid(e.Message)); } }
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 string Add(string firstName, string middleName, string lastName, int sex, int userId, DateTime dob, bool dobPrecision, int facilityId, int patientType, string nationalId, int visitType, DateTime dateOfEnrollment, string cccNumber, int entryPointId, string godsNumber, int matStatusId, string village, int wardId, int subCountyId, int countyId, string nearestLandMark, string postalAdress, string phoneNumber, DateTime?deathDate, List <NEXTOFKIN> nextofkin) { try { PersonManager personManager = new PersonManager(); PatientManager patientManager = new PatientManager(); PatientMasterVisitManager patientMasterVisitManager = new PatientMasterVisitManager(); PatientEnrollmentManager patientEnrollmentManager = new PatientEnrollmentManager(); PatientEntryPointManager patientEntryPointManager = new PatientEntryPointManager(); PersonLookUpManager personLookUp = new PersonLookUpManager(); PersonContactLookUpManager personContactLookUpManager = new PersonContactLookUpManager(); MstPatientLogic mstPatientLogic = new MstPatientLogic(); PatientIdentifierManager patientIdentifierManager = new PatientIdentifierManager(); PersonMaritalStatusManager personMaritalStatusManager = new PersonMaritalStatusManager(); PersonLocationManager locationManager = new PersonLocationManager(); PersonContactManager contactManager = new PersonContactManager(); var treatmentSupporterManager = new PatientTreatmentSupporterManager(); LookupLogic lookupLogic = new LookupLogic(); var personIdentifierManager = new PersonIdentifierManager(); //todo: fetch assigning facility from the message string assigning_Facility = ""; var personContacts = new List <PersonContactLookUp>(); int ptn_Pk = 0; //Start Saving int personId = personManager.AddPersonUiLogic(firstName, middleName, lastName, sex, userId, dob, dobPrecision); if (matStatusId > 0) { personMaritalStatusManager.AddPatientMaritalStatus(personId, matStatusId, userId); } if (wardId > 0 && subCountyId > 0 && countyId > 0) { locationManager.AddPersonLocation(personId, countyId, subCountyId, wardId, village, "", "", nearestLandMark, nearestLandMark, userId); } if (postalAdress != null || phoneNumber != null) { contactManager.AddPersonContact(personId, postalAdress, phoneNumber, "", "", userId); } String sDate = DateTime.Now.ToString(); DateTime datevalue = Convert.ToDateTime(sDate); var patientIndex = datevalue.Year.ToString() + '-' + personId; if (!string.IsNullOrWhiteSpace(godsNumber)) { IdentifierManager identifierManager = new IdentifierManager(); Identifier identifier = identifierManager.GetIdentifierByCode("GODS_NUMBER"); var personIdentifiers = personIdentifierManager.GetPersonIdentifiers(personId, identifier.Id); if (personIdentifiers.Count == 0) { personIdentifierManager.AddPersonIdentifier(personId, identifier.Id, godsNumber, userId, assigning_Facility); } } if (nextofkin.Count > 0) { foreach (var kin in nextofkin) { if (kin.CONTACT_ROLE == "T") { //Get Gender string gender = kin.SEX == "F" ? "Female" : "Male"; //IQCare Sex int sexT = lookupLogic.GetItemIdByGroupAndItemName("Gender", gender)[0].ItemId; int supporterId = personManager.AddPersonTreatmentSupporterUiLogic(kin.NOK_NAME.FIRST_NAME, kin.NOK_NAME.MIDDLE_NAME, kin.NOK_NAME.LAST_NAME, sexT, 1); if (supporterId > 0) { treatmentSupporterManager.AddPatientTreatmentSupporter(personId, supporterId, kin.PHONE_NUMBER, userId); } } } } PatientEntity patientEntity = new PatientEntity(); patientEntity.PersonId = personId; patientEntity.ptn_pk = 0; patientEntity.FacilityId = facilityId; patientEntity.PatientType = patientType; patientEntity.PatientIndex = patientIndex; patientEntity.DateOfBirth = dob; patientEntity.NationalId = (nationalId); patientEntity.Active = true; patientEntity.CreatedBy = 1; patientEntity.CreateDate = DateTime.Now; patientEntity.DeleteFlag = false; patientEntity.DobPrecision = dobPrecision; int patientId = patientManager.AddPatient(patientEntity); var facility = lookupLogic.GetFacility(); //Add enrollment visit int patientMasterVisitId = patientMasterVisitManager.AddPatientMasterVisit(patientId, userId, visitType, facility.FacilityID); //Enroll Patient to service int patientEnrollmentId = patientEnrollmentManager.addPatientEnrollment(patientId, dateOfEnrollment.ToString(), userId); //Add enrollment entry point int patientEntryPointId = patientEntryPointManager.addPatientEntryPoint(patientId, entryPointId, userId); if (deathDate.HasValue) { PatientCareEndingManager careEndingManager = new PatientCareEndingManager(); int itemId = lookupLogic.GetItemIdByGroupAndItemName("CareEnded", "Death")[0].ItemId; careEndingManager.AddPatientCareEndingDeath(patientId, patientMasterVisitId, patientEnrollmentId, itemId, deathDate.Value, deathDate.Value, "", null, null); PatientEntityEnrollment entityEnrollment = patientEnrollmentManager.GetPatientEntityEnrollment(patientEnrollmentId); entityEnrollment.CareEnded = true; patientEnrollmentManager.updatePatientEnrollment(entityEnrollment); } //Get User Details to be used in BLUE CARD var patient_person_details = personLookUp.GetPersonById(personId); var greencardlookup = new PersonGreenCardLookupManager(); var greencardptnpk = greencardlookup.GetPtnPkByPersonId(personId); if (patient_person_details != null) { var maritalStatus = new PersonMaritalStatusManager().GetCurrentPatientMaritalStatus(personId); personContacts = personContactLookUpManager.GetPersonContactByPersonId(personId); var address = ""; var phone = ""; if (personContacts.Count > 0) { address = personContacts[0].PhysicalAddress; phone = personContacts[0].MobileNumber; } var MaritalStatusId = 0; if (maritalStatus != null) { MaritalStatusId = maritalStatus.MaritalStatusId; } var sexBluecard = 0; var enrollmentBlueCardId = ""; if (LookupLogic.GetLookupNameById(patient_person_details.Sex) == "Male") { sexBluecard = 16; } else if (LookupLogic.GetLookupNameById(patient_person_details.Sex) == "Female") { sexBluecard = 17; } enrollmentBlueCardId = cccNumber; if (greencardptnpk.Count == 0) { ptn_Pk = mstPatientLogic.InsertMstPatient((patient_person_details.FirstName), (patient_person_details.LastName), (patient_person_details.MiddleName), facilityId, enrollmentBlueCardId, entryPointId, dateOfEnrollment, sexBluecard, dob, 1, MaritalStatusId, address, phone, 1, facilityId.ToString(), 203, dateOfEnrollment, DateTime.Now); patientEntity.ptn_pk = ptn_Pk; patientManager.UpdatePatient(patientEntity, patientId); } else { ptn_Pk = greencardptnpk[0].Ptn_Pk; patientEntity.ptn_pk = greencardptnpk[0].Ptn_Pk; patientManager.UpdatePatient(patientEntity, patientId); } } if (patientMasterVisitId > 0) { var assigningFacility = cccNumber.Substring(0, 5); int patientIdentifierId = patientIdentifierManager.addPatientIdentifier(patientId, patientEnrollmentId, 1, cccNumber, facilityId, assigningFacility, false); if (greencardptnpk.Count == 0) { mstPatientLogic.AddOrdVisit(ptn_Pk, facilityId, DateTime.Now, 110, userId, DateTime.Now, 203); } } return("successfully saved"); } catch (Exception e) { throw new Exception(e.Message); } }
public static string Update(string firstName, string middleName, string lastName, int personSex, int personId, int patientId, int?ptn_pk, DateTime dateOfBirth, bool DOB_Precision, string nationalId, int facilityId, int entryPointId, DateTime enrollmentDate, string cccNumber, PatientLookup patient, string godsNumber, int matStatusId, string village, int wardId, int subCountyId, int countyId, string nearestLandMark, string postalAdress, string phoneNumber, DateTime?deathDate, List <NEXTOFKIN> nextofkin, int userId) { try { //todo: fetch assigning facility from the message string assigning_Facility = ""; PersonManager personManager = new PersonManager(); var patientManager = new PatientManager(); var patientEntryPointManager = new PatientEntryPointManager(); var patientIdentifierManager = new PatientIdentifierManager(); var patientEnrollmentManager = new PatientEnrollmentManager(); var personIdentifierManager = new PersonIdentifierManager(); PersonMaritalStatusManager personMaritalStatusManager = new PersonMaritalStatusManager(); PersonLocationManager locationManager = new PersonLocationManager(); PersonContactManager contactManager = new PersonContactManager(); var personContactLookUp = new PersonContactLookUpManager(); var patientTreatmentlookupManager = new PatientTreatmentSupporterLookupManager(); var treatmentSupporterManager = new PatientTreatmentSupporterManager(); personManager.UpdatePerson(firstName, middleName, lastName, personSex, userId, patient.PersonId, dateOfBirth, DOB_Precision); if (!string.IsNullOrWhiteSpace(godsNumber)) { IdentifierManager identifierManager = new IdentifierManager(); Identifier identifier = identifierManager.GetIdentifierByCode("GODS_NUMBER"); var personIdentifiers = personIdentifierManager.GetPersonIdentifiers(personId, identifier.Id); if (personIdentifiers.Count == 0) { personIdentifierManager.AddPersonIdentifier(personId, identifier.Id, godsNumber, userId, assigning_Facility); } } if (matStatusId > 0) { var currentMaritalStatus = personMaritalStatusManager.GetCurrentPatientMaritalStatus(personId); if (currentMaritalStatus != null) { currentMaritalStatus.MaritalStatusId = matStatusId; personMaritalStatusManager.UpdatePatientMaritalStatus(currentMaritalStatus); } else { personMaritalStatusManager.AddPatientMaritalStatus(personId, matStatusId, userId); } } if (wardId > 0 && subCountyId > 0 && countyId > 0) { var currentLocation = locationManager.GetCurrentPersonLocation(personId); if (currentLocation.Count > 0) { currentLocation[0].DeleteFlag = true; locationManager.UpdatePersonLocation(currentLocation[0]); } locationManager.AddPersonLocation(personId, countyId, subCountyId, wardId, village, "", "", nearestLandMark, nearestLandMark, userId); } if (postalAdress != null || phoneNumber != null) { var contacts = personContactLookUp.GetPersonContactByPersonId(personId); if (contacts.Count > 0) { PersonContact perContact = new PersonContact(); perContact.Id = contacts[0].Id; perContact.PersonId = contacts[0].PersonId; perContact.PhysicalAddress = (postalAdress); perContact.MobileNumber = (phoneNumber); perContact.AlternativeNumber = ""; perContact.EmailAddress = ""; contactManager.UpdatePatientContact(perContact); } else { contactManager.AddPersonContact(personId, postalAdress, phoneNumber, "", "", userId); } } if (nextofkin.Count > 0) { foreach (var kin in nextofkin) { if (kin.CONTACT_ROLE == "T") { //Get Gender string gender = kin.SEX == "F" ? "Female" : "Male"; //IQCare Sex LookupLogic lookupLogic = new LookupLogic(); int sex = lookupLogic.GetItemIdByGroupAndItemName("Gender", gender)[0].ItemId; var listPatientTreatmentSupporter = patientTreatmentlookupManager.GetAllPatientTreatmentSupporter(personId); if (listPatientTreatmentSupporter.Count > 0) { personManager.UpdatePerson(kin.NOK_NAME.FIRST_NAME, kin.NOK_NAME.MIDDLE_NAME, kin.NOK_NAME.LAST_NAME, sex, userId, listPatientTreatmentSupporter[0].SupporterId); if (listPatientTreatmentSupporter[0].SupporterId > 0) { var treatmentSupporter = patientTreatmentlookupManager.GetAllPatientTreatmentSupporter(personId); if (treatmentSupporter.Count > 0) { PatientTreatmentSupporter supporter = new PatientTreatmentSupporter() { Id = treatmentSupporter[0].Id, PersonId = personId, SupporterId = listPatientTreatmentSupporter[0].SupporterId, MobileContact = kin.PHONE_NUMBER, CreatedBy = treatmentSupporter[0].CreatedBy, DeleteFlag = treatmentSupporter[0].DeleteFlag }; treatmentSupporterManager.UpdatePatientTreatmentSupporter(supporter); } } } else { int supporterId = personManager.AddPersonTreatmentSupporterUiLogic(kin.NOK_NAME.FIRST_NAME, kin.NOK_NAME.MIDDLE_NAME, kin.NOK_NAME.LAST_NAME, sex, userId); if (supporterId > 0) { treatmentSupporterManager.AddPatientTreatmentSupporter(personId, supporterId, kin.PHONE_NUMBER, userId); } } } } } List <PatientLookup> patientLookups = new List <PatientLookup>(); patientLookups.Add(patient); var entity = patientLookups.ConvertAll(x => new PatientEntity { Id = x.Id, Active = x.Active, DateOfBirth = x.DateOfBirth, ptn_pk = x.ptn_pk, PatientType = x.PatientType, PatientIndex = x.PatientIndex, NationalId = x.NationalId, FacilityId = x.FacilityId }); var patientAuditData = AuditDataUtility.AuditDataUtility.Serializer(entity); PatientEntity updatePatient = new PatientEntity(); updatePatient.ptn_pk = ptn_pk; updatePatient.DateOfBirth = dateOfBirth; updatePatient.DobPrecision = DOB_Precision; updatePatient.NationalId = nationalId; updatePatient.FacilityId = facilityId; updatePatient.AuditData = patientAuditData; patientManager.UpdatePatient(updatePatient, patientId); List <PatientEntryPoint> entryPoints = patientEntryPointManager.GetPatientEntryPoints(patient.Id, 1); if (entryPoints.Count > 0) { string entryPointAuditData = null; entryPointAuditData = AuditDataUtility.AuditDataUtility.Serializer(entryPoints); entryPoints[0].EntryPointId = entryPointId; entryPoints[0].AuditData = entryPointAuditData; patientEntryPointManager.UpdatePatientEntryPoint(entryPoints[0]); } else { patientEntryPointManager.addPatientEntryPoint(patientId, entryPointId, userId); } var identifiersByPatientId = patientIdentifierManager.GetPatientEntityIdentifiersByPatientId(patientId, 1); if (identifiersByPatientId.Count > 0) { foreach (var entityIdentifier in identifiersByPatientId) { int enrollmentId = entityIdentifier.PatientEnrollmentId; PatientEntityEnrollment entityEnrollment = patientEnrollmentManager.GetPatientEntityEnrollment(enrollmentId); List <PatientEntityEnrollment> listEnrollment = new List <PatientEntityEnrollment>(); listEnrollment.Add(entityEnrollment); var enrollmentAuditData = AuditDataUtility.AuditDataUtility.Serializer(listEnrollment); entityEnrollment.EnrollmentDate = enrollmentDate; entityEnrollment.AuditData = enrollmentAuditData; patientEnrollmentManager.updatePatientEnrollment(entityEnrollment); var entityIdentifierAuditData = AuditDataUtility.AuditDataUtility.Serializer(identifiersByPatientId); entityIdentifier.IdentifierValue = cccNumber; entityIdentifier.AuditData = entityIdentifierAuditData; patientIdentifierManager.UpdatePatientIdentifier(entityIdentifier, facilityId, false); if (deathDate.HasValue) { PatientMasterVisitManager masterVisitManager = new PatientMasterVisitManager(); PatientCareEndingManager careEndingManager = new PatientCareEndingManager(); LookupLogic lookupLogic = new LookupLogic(); int itemId = lookupLogic.GetItemIdByGroupAndItemName("CareEnded", "Death")[0].ItemId; int patientMasterVisitId = masterVisitManager.GetLastPatientVisit(patientId).Id; careEndingManager.AddPatientCareEndingDeath(patientId, patientMasterVisitId, enrollmentId, itemId, deathDate.Value, deathDate.Value, "", null, null); PatientEntityEnrollment entityEnrollmentCareEnded = patientEnrollmentManager.GetPatientEntityEnrollment(enrollmentId); entityEnrollmentCareEnded.CareEnded = true; patientEnrollmentManager.updatePatientEnrollment(entityEnrollmentCareEnded); } } } else { var assigningFacility = cccNumber.Substring(0, 5); int patientEnrollmentId = patientEnrollmentManager.addPatientEnrollment(patientId, enrollmentDate.ToString(), userId); int patientEntryPointId = patientEntryPointManager.addPatientEntryPoint(patientId, entryPointId, userId); int patientIdentifierId = patientIdentifierManager.addPatientIdentifier(patientId, patientEnrollmentId, 1, cccNumber, facilityId, assigningFacility, false); if (deathDate.HasValue) { PatientMasterVisitManager masterVisitManager = new PatientMasterVisitManager(); PatientCareEndingManager careEndingManager = new PatientCareEndingManager(); LookupLogic lookupLogic = new LookupLogic(); int itemId = lookupLogic.GetItemIdByGroupAndItemName("CareEnded", "Death")[0].ItemId; int patientMasterVisitId = masterVisitManager.GetLastPatientVisit(patientId).Id; careEndingManager.AddPatientCareEndingDeath(patientId, patientMasterVisitId, patientEnrollmentId, itemId, deathDate.Value, deathDate.Value, "", null, null); PatientEntityEnrollment entityEnrollmentCareEnded = patientEnrollmentManager.GetPatientEntityEnrollment(patientEnrollmentId); entityEnrollmentCareEnded.CareEnded = true; patientEnrollmentManager.updatePatientEnrollment(entityEnrollmentCareEnded); } } return("Successfully updated patient"); } catch (Exception e) { throw new Exception(e.Message); } }
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; } }
public string ProcessCardSerialNumberIdentifier(psmartCard psmartCard) { // PatientEnrollmentManager patientEnrollmentManager = new PatientEnrollmentManager(); IdentifierManager identifierManager = new IdentifierManager(); PersonIdentifierManager personIdentifierManager = new PersonIdentifierManager(); PatientManager patientManager = new PatientManager(); PatientLookupManager lookupManager = new PatientLookupManager(); PersonExtendedLookupManager personExtendedLookupManager = new PersonExtendedLookupManager(); // PatientIdentifierManager patientIdentifierManager = new PatientIdentifierManager(); // var patientEnrollment = patientEnrollmentManager.GetPatientEnrollmentByPatientId(psmartCard.PATIENTID); // int patientEnrollmentId = patientEnrollment[0].Id; int results = 0; // Identifier identifier = identifierManager.GetIdentifierByCode("GODS_NUMBER"); Identifier identifier = identifierManager.GetIdentifierByCode("CARD_SERIAL_NUMBER"); personId = patientManager.GetPersonId(psmartCard.PATIENTID); try { //var patientEntityIdentifier = new PatientEntityIdentifier() //{ // IdentifierTypeId = identifier.Id, // IdentifierValue = psmartCard.CARD_SERIAL_NO, // PatientEnrollmentId = patientEnrollmentId, // PatientId = psmartCard.PATIENTID //}; // PatientLookup patient = lookupManager.GetPatientByPersonId(personId); var patient = personExtendedLookupManager.GetPatientDetailsByPersonId(personId); var personEntityIdentifier = new PersonIdentifier() { IdentifierId = identifier.Id, IdentifierValue = psmartCard.CARD_SERIAL_NO, PersonId = personId, AssigningFacility = patient.FacilityId.ToString(), Active = true, DeleteFlag = false }; string serialNumber = null; //var identifierLists = patientIdentifierManager.CheckIfIdentifierNumberIsUsed(psmartCard.CARD_SERIAL_NO, patientEntityIdentifier.IdentifierTypeId); var identifierLists = personIdentifierManager.CheckIfPersonIdentifierExists(psmartCard.CARD_SERIAL_NO, personEntityIdentifier.IdentifierId); foreach (var identifierList in identifierLists) { serialNumber = identifierList.IdentifierValue; } if (string.IsNullOrEmpty(serialNumber)) { //results = _personIdentifierManager.AddPersonIdentifier(patientEntityIdentifier.PatientId, // patientEntityIdentifier.PatientEnrollmentId, patientEntityIdentifier.IdentifierTypeId, // patientEntityIdentifier.IdentifierValue, 0, false); results = personIdentifierManager.AddPersonIdentifier(personId, personEntityIdentifier.IdentifierId, psmartCard.CARD_SERIAL_NO, 1, personEntityIdentifier.AssigningFacility); return((results) > 0 ? "Card serial Number Linked to a patient as identifier" : "Failed linking card Serial Number to patient"); } else { return("Card Serial Number : " + psmartCard.CARD_SERIAL_NO + " is already assigned to a Patient."); } } catch (Exception e) { throw new Exception(e.Message); } }
public static string Update(PatientAppointSchedulingDTO appointmentScheduling) { try { //todo: fetch assigning facility from the message string assigning_Facility = ""; PatientAppointmentManager manager = new PatientAppointmentManager(); PatientLookupManager patientLookup = new PatientLookupManager(); LookupLogic lookupLogic = new LookupLogic(); PatientMasterVisitManager masterVisitManager = new PatientMasterVisitManager(); var personIdentifierManager = new PersonIdentifierManager(); var interopPlacerValuesManager = new InteropPlacerValuesManager(); PatientLookup patient = new PatientLookup(); string cccNumber = String.Empty; string appointmentReason = String.Empty; string appointmentStatus = String.Empty; string appointmentType = String.Empty; int interopUserId = InteropUser.UserId; foreach (var item in appointmentScheduling.PATIENT_IDENTIFICATION.INTERNAL_PATIENT_ID) { if (item.IDENTIFIER_TYPE == "CCC_NUMBER" && item.ASSIGNING_AUTHORITY == "CCC") { cccNumber = item.ID; } } string godsNumber = appointmentScheduling.PATIENT_IDENTIFICATION.EXTERNAL_PATIENT_ID.ID; if (!String.IsNullOrWhiteSpace(cccNumber)) { patient = patientLookup.GetPatientByCccNumber(cccNumber); if (patient != null) { if (!string.IsNullOrWhiteSpace(godsNumber)) { IdentifierManager identifierManager = new IdentifierManager(); Identifier identifier = identifierManager.GetIdentifierByCode("GODS_NUMBER"); var personIdentifiers = personIdentifierManager.GetPersonIdentifiers(patient.PersonId, identifier.Id); if (personIdentifiers.Count == 0) { personIdentifierManager.AddPersonIdentifier(patient.PersonId, identifier.Id, godsNumber, interopUserId, assigning_Facility); } } int patientMasterVisitId = masterVisitManager.GetLastPatientVisit(patient.Id).Id; int serviceAreaId = lookupLogic.GetItemIdByGroupAndItemName("ServiceArea", "MoH 257 GREENCARD")[0].ItemId; foreach (var appointment in appointmentScheduling.APPOINTMENT_INFORMATION) { switch (appointment.APPOINTMENT_REASON) { case "PHARMACY_REFILL": appointmentReason = "Pharmacy Refill"; break; case "TREATMENT_PREP": appointmentReason = "Treatment Preparation"; break; case "LAB_TEST": appointmentReason = "Lab Tests"; break; case "FOLLOWUP": appointmentReason = "Follow Up"; break; default: appointmentReason = "Follow Up"; break; } switch (appointment.APPOINTMENT_STATUS) { case "HONORED": appointmentStatus = "Met"; break; case "MISSED": appointmentStatus = "Missed"; break; case "PENDING": appointmentStatus = "Pending"; break; case "CANCELLED": appointmentStatus = "CareEnded"; break; default: appointmentStatus = "Pending"; break; } switch (appointment.APPOINTMENT_TYPE) { case "CLINICAL": appointmentType = "Standard Care"; break; case "PHARMACY": appointmentType = "Express Care"; break; case "INVESTIGATION": appointmentType = "Express Care"; break; default: appointmentType = "Standard Care"; break; } var reasons = lookupLogic.GetItemIdByGroupAndItemName("AppointmentReason", appointmentReason); int reasonId = 0; if (reasons == null || reasons.Count > 0) { throw new Exception($"No matching reasons in the databases {appointmentReason}"); } reasonId = reasons[0].ItemId; int statusId = 0; var status = lookupLogic.GetItemIdByGroupAndItemName("AppointmentStatus", appointmentStatus); if (status == null || status.Count > 0) { throw new Exception($"No matching appointmentstatus in the databases {appointmentStatus}"); } statusId = status[0].ItemId; int differentiatedCareId = 0; var diffCare = lookupLogic.GetItemIdByGroupAndItemName("DifferentiatedCare", appointmentType); if (diffCare == null || diffCare.Count > 0) { throw new Exception($"No matching differentiated care option in the databases {appointmentType}"); } differentiatedCareId = diffCare[0].ItemId; InteropPlacerTypeManager interopPlacerTypeManager = new InteropPlacerTypeManager(); int interopPlacerTypeId = interopPlacerTypeManager.GetInteropPlacerTypeByName(appointment.PLACER_APPOINTMENT_NUMBER.ENTITY).Id; var interopPlacerValues = interopPlacerValuesManager.GetInteropPlacerValues(interopPlacerTypeId, 3, Convert.ToInt32(appointment.PLACER_APPOINTMENT_NUMBER.NUMBER)); if (interopPlacerValues != null) { PatientAppointment patientAppointment = manager.GetPatientAppointment(interopPlacerValues.EntityId); patientAppointment.AppointmentDate = DateTime.ParseExact(appointment.APPOINTMENT_DATE, "yyyyMMdd", null); patientAppointment.Description = appointment.APPOINTMENT_NOTE; patientAppointment.DifferentiatedCareId = differentiatedCareId; patientAppointment.ReasonId = reasonId; patientAppointment.ServiceAreaId = serviceAreaId; patientAppointment.StatusId = statusId; manager.UpdatePatientAppointments(patientAppointment); } else { PatientAppointment patientAppointment = new PatientAppointment() { PatientId = patient.Id, PatientMasterVisitId = patientMasterVisitId, AppointmentDate = DateTime.ParseExact(appointment.APPOINTMENT_DATE, "yyyyMMdd", null), Description = appointment.APPOINTMENT_NOTE, DifferentiatedCareId = differentiatedCareId, ReasonId = reasonId, ServiceAreaId = serviceAreaId, StatusId = statusId, CreatedBy = interopUserId, CreateDate = DateTime.Now }; int appointmentId = manager.AddPatientAppointments(patientAppointment); InteropPlacerValues placerValues = new InteropPlacerValues() { IdentifierType = 3, EntityId = appointmentId, InteropPlacerTypeId = interopPlacerTypeId, PlacerValue = Convert.ToInt32(appointment.PLACER_APPOINTMENT_NUMBER.NUMBER) }; interopPlacerValuesManager.AddInteropPlacerValue(placerValues); } } } } } catch (Exception e) { throw new Exception(e.Message); } return(String.Empty); }
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); } }