public async Task <PatientMasterVisit> AddPatientMasterVisit(int patientId, int serviceAreaId, DateTime encounterDate, int userId) { try { PatientMasterVisit patientMasterVisit = new PatientMasterVisit() { PatientId = patientId, ServiceId = serviceAreaId, Start = encounterDate, Active = true, CreateDate = DateTime.Now, DeleteFlag = false, VisitDate = encounterDate, CreatedBy = userId, VisitType = 0 }; await _unitOfWork.Repository <PatientMasterVisit>().AddAsync(patientMasterVisit); await _unitOfWork.SaveAsync(); return(patientMasterVisit); } catch (Exception e) { throw e; } }
public int PatientMasterVisitCheckout(int patientId, PatientMasterVisit patientMasterVisit) { using (UnitOfWork unitOfWork = new UnitOfWork(new GreencardContext())) { var patientVisit = unitOfWork.PatientMasterVisitRepository.FindBy( x => x.PatientId == patientId & x.Status == 1 & !x.DeleteFlag & x.End == null & !x.Active) .FirstOrDefault(); if (patientVisit != null) { patientVisit.Status = 2; patientVisit.End = patientMasterVisit.End; patientVisit.VisitDate = patientMasterVisit.VisitDate; patientVisit.VisitScheduled = patientMasterVisit.VisitScheduled; patientVisit.VisitType = patientMasterVisit.VisitType; patientVisit.VisitBy = patientMasterVisit.VisitBy; patientVisit.Patient = null; //call the update function here.... unitOfWork.PatientMasterVisitRepository.Update(patientMasterVisit); Result = unitOfWork.Complete(); } unitOfWork.Dispose(); return(Result); } }
public int AddPatientMasterVisit(int patientId, int userId, int visitType, int?_facilityId) { try { PatientMasterVisit visit = new PatientMasterVisit { PatientId = patientId, ServiceId = 1, Start = DateTime.Now, Active = true, CreateDate = DateTime.Now, DeleteFlag = false, VisitDate = DateTime.Now, CreatedBy = userId, VisitType = visitType, FacilityId = _facilityId }; return(_result = _patientMasterVisitManager.AddPatientmasterVisit(visit)); } catch (Exception ex) { throw new Exception(ex.Message); } }
public int UpdatePatientMasterVisit(PatientMasterVisit patientMasterVisit) { using (UnitOfWork unitOfWork = new UnitOfWork(new GreencardContext())) { unitOfWork.PatientMasterVisitRepository.Update(patientMasterVisit); unitOfWork.Dispose(); return(Result = unitOfWork.Complete()); } }
public PatientMasterVisit GetVisitById(int id) { using (UnitOfWork unitOfWork = new UnitOfWork(new GreencardContext())) { PatientMasterVisit visit = unitOfWork.PatientMasterVisitRepository.GetById(id); unitOfWork.Dispose(); return(visit); } }
public async Task <Result <AddEncounterVisitResponse> > Handle(AddEncounterVisitCommand request, CancellationToken cancellationToken) { using (var trans = _unitOfWork.Context.Database.BeginTransaction()) { try { PatientMasterVisit patientMasterVisit = new PatientMasterVisit() { PatientId = request.PatientId, ServiceId = request.ServiceAreaId, Start = request.EncounterDate, Active = true, CreateDate = DateTime.Now, DeleteFlag = false, VisitDate = request.EncounterDate, CreatedBy = request.UserId, VisitType = 0 }; await _unitOfWork.Repository <PatientMasterVisit>().AddAsync(patientMasterVisit); await _unitOfWork.SaveAsync(); PatientEncounter patientEncounter = new PatientEncounter() { PatientId = request.PatientId, EncounterTypeId = request.EncounterType, Status = 0, PatientMasterVisitId = patientMasterVisit.Id, EncounterStartTime = request.EncounterDate, EncounterEndTime = request.EncounterDate, ServiceAreaId = request.ServiceAreaId, CreatedBy = request.UserId, CreateDate = DateTime.Now }; await _unitOfWork.Repository <PatientEncounter>().AddAsync(patientEncounter); await _unitOfWork.SaveAsync(); trans.Commit(); //_unitOfWork.Dispose(); return(Result <AddEncounterVisitResponse> .Valid(new AddEncounterVisitResponse { PatientMasterVisitId = patientMasterVisit.Id, PatientEncounterId = patientEncounter.Id })); } catch (Exception ex) { trans.Rollback(); return(Result <AddEncounterVisitResponse> .Invalid(ex.Message)); } } }
public PatientMasterVisit GetLastPatientVisit(int patientId) { using (UnitOfWork unitOfWork = new UnitOfWork(new GreencardContext())) { PatientMasterVisit visit = unitOfWork.PatientMasterVisitRepository.FindBy(x => x.PatientId == patientId) .OrderByDescending(y => y.Id).FirstOrDefault(); unitOfWork.Dispose(); return(visit); } }
public int AddPatientmasterVisit(PatientMasterVisit patientMasterVisit) { using (UnitOfWork unitOfWork = new UnitOfWork(new GreencardContext())) { unitOfWork.PatientMasterVisitRepository.Add(patientMasterVisit); Result = unitOfWork.Complete(); unitOfWork.Dispose(); return(patientMasterVisit.Id); } }
public int AddPatientMasterVisit(PatientMasterVisit pm) { try { return(_result = _patientMasterVisitManager.AddPatientmasterVisit(pm)); } catch (Exception ex) { throw new Exception(ex.Message); } }
protected void Page_Load(object sender, EventArgs e) { if (PatientMasterVisitId == 0) { PatientMasterVisit visit = new PatientMasterVisit() { PatientId = PatientId, Active = true, }; } }
protected void Page_Load(object sender, EventArgs e) { if (PatientMasterVisitId == 0) { PatientMasterVisit visit = new PatientMasterVisit() { PatientId = PatientId, Active = true, }; } PatientLookupManager patientLookupManager = new PatientLookupManager(); var patientDetails = patientLookupManager.GetPatientDetailSummary(PatientId); Session["DateOfEnrollment"] = patientDetails.EnrollmentDate; }
public int PatientMasterVisitCheckin(int patientId, int userId) { var objPpatientMasterVisit = new PatientMasterVisit { PatientId = patientId, ServiceId = 1, Status = 1, Start = DateTime.Now, VisitDate = DateTime.Now, CreatedBy = userId }; if (patientId > 0) { _result = _patientMasterVisitManager.PatientMasterVisitCheckin(patientId, objPpatientMasterVisit); } return(_result > 0 ?_result:0); }
public int PatientMasterVisitCheckin(int patientId, PatientMasterVisit patientMasterVisit) { using (UnitOfWork unitOfWork = new UnitOfWork(new GreencardContext())) { PatientMasterVisitAutoClosure(patientId); var visitId = unitOfWork.PatientMasterVisitRepository.FindBy( x => //x.PatientId == patientId & DbFunctions.AddHours(x.Start,-24) <= DateTime.Now & x.PatientId == patientId & DbFunctions.DiffHours(x.Start, DateTime.Now) <= 24 & x.End == null & !x.Active & x.Status == 1).Select(x => x.Id).FirstOrDefault(); if (visitId == 0) { unitOfWork.PatientMasterVisitRepository.Add(patientMasterVisit); unitOfWork.Complete(); visitId = patientMasterVisit.Id; } unitOfWork.Dispose(); return(visitId); } }
public int AddPatientMasterVisit(int patientId, int userId, int visitType) { try { PatientMasterVisit visit = new PatientMasterVisit { PatientId = patientId, ServiceId = sv.GetServiceAreaById("Registration"), Start = DateTime.Now, Active = true, CreateDate = DateTime.Now, DeleteFlag = false, VisitDate = DateTime.Now, CreatedBy = userId, VisitType = visitType }; return(_result = _patientMasterVisitManager.AddPatientmasterVisit(visit)); } catch (Exception ex) { throw new Exception(ex.Message); } }
public string GetPatientMasterVisitId(int PatientId, DateTime visitDate, string EncounterType, int ServiceAreaId, int UserId) { PatientMasterVisitManager pmvManager = new PatientMasterVisitManager(); List <PatientMasterVisit> pmv = new List <PatientMasterVisit>(); PatientEncounterLogic patientEncounter = new PatientEncounterLogic(); OutCome ResultOutcome = new OutCome(); pmv = pmvManager.GetPatientMasterVisitBasedonVisitDate(PatientId, visitDate); if (pmv != null) { if (pmv.Count > 0) { MasterVisitId = pmv[0].Id; } } if (MasterVisitId > 0) { Result = patientEncounter.SavePatientPreviousEncounter(PatientId, MasterVisitId, EncounterType, ServiceAreaId, Convert.ToInt32(Session["AppUserId"]), visitDate); if (Result > 0) { ResultOutcome.Result = MasterVisitId; ResultOutcome.Msg = EncounterType + " Encounter Saved"; } } else { var lookupLogic = new LookupLogic(); var facility = lookupLogic.GetFacility(Session["AppPosID"].ToString()); if (facility == null) { facility = lookupLogic.GetFacility(); } PatientMasterVisit pm = new PatientMasterVisit(); pm.ServiceId = 1; pm.VisitDate = visitDate; pm.VisitBy = UserId; pm.Start = visitDate; pm.End = visitDate; pm.PatientId = PatientId; pm.CreatedBy = UserId; pm.Active = true; pm.Status = 2; pm.FacilityId = facility.FacilityID; int PatientMasterVisitId = pmvManager.AddPatientMasterVisit(pm); int res = patientEncounter.SavePatientPreviousEncounter(PatientId, PatientMasterVisitId, EncounterType, ServiceAreaId, Convert.ToInt32(Session["AppUserId"]), visitDate); if (res > 0) { Result = PatientMasterVisitId; ResultOutcome.Result = Result; ResultOutcome.Msg = EncounterType + "Encounter Saved"; } } string jsonScreeningObject = "[]"; jsonScreeningObject = new JavaScriptSerializer().Serialize(ResultOutcome); return(jsonScreeningObject); }
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 async Task <PatientIdentifier> EnrollPatient(string enrollmentNo, int patientId, int serviceAreaId, int createdBy, DateTime dateOfEnrollment) { using (var trans = _unitOfWork.Context.Database.BeginTransaction()) { try { var previouslyIdentifiers = await _unitOfWork.Repository <PatientIdentifier>().Get(y => y.IdentifierValue == enrollmentNo && y.IdentifierTypeId == 8) .ToListAsync(); if (previouslyIdentifiers.Count > 0) { var exception = new Exception("No: " + enrollmentNo + " already exists"); throw exception; } var enrollmentVisitType = await _unitOfWork.Repository <LookupItemView>().Get(x => x.MasterName == "VisitType" && x.ItemName == "Enrollment").FirstOrDefaultAsync(); int?visitType = enrollmentVisitType != null ? enrollmentVisitType.ItemId : 0; var patientMasterVisit = new PatientMasterVisit() { PatientId = patientId, ServiceId = serviceAreaId, Start = DateTime.Now, End = null, Active = false, VisitDate = DateTime.Now, VisitType = visitType, Status = 1, CreateDate = DateTime.Now, DeleteFlag = false, CreatedBy = createdBy }; await _unitOfWork.Repository <PatientMasterVisit>().AddAsync(patientMasterVisit); await _unitOfWork.SaveAsync(); var patientEnrollment = new PatientEnrollment() { PatientId = patientId, ServiceAreaId = serviceAreaId, EnrollmentDate = dateOfEnrollment, EnrollmentStatusId = 0, TransferIn = false, CareEnded = false, DeleteFlag = false, CreatedBy = createdBy, CreateDate = DateTime.Now }; await _unitOfWork.Repository <PatientEnrollment>().AddAsync(patientEnrollment); await _unitOfWork.SaveAsync(); var patientIdentifier = new PatientIdentifier() { PatientId = patientId, PatientEnrollmentId = patientEnrollment.Id, IdentifierTypeId = 8, IdentifierValue = enrollmentNo, DeleteFlag = false, CreatedBy = createdBy, CreateDate = DateTime.Now, Active = true }; await _unitOfWork.Repository <PatientIdentifier>().AddAsync(patientIdentifier); await _unitOfWork.SaveAsync(); GetPatientDetails patientDetails = new GetPatientDetails(_unitOfWork); LookupLogic lookupLogic = new LookupLogic(_unitOfWork); var patientLookup = await patientDetails.GetPatientByPatientId(patientId); if (patientLookup.Count > 0) { Facility facility = await _unitOfWork.Repository <Facility>().Get(x => x.DeleteFlag == 0).FirstOrDefaultAsync(); var referralId = await lookupLogic.GetDecodeIdByName("VCT", 17); var maritalStatusId = await lookupLogic.GetDecodeIdByName(patientLookup[0].MaritalStatusName, 17); var address = patientLookup[0].PhysicalAddress == null ? " " : patientLookup[0].PhysicalAddress; var phone = patientLookup[0].MobileNumber == null ? " " : patientLookup[0].MobileNumber; var dobPrecision = 0; if (patientLookup[0].DobPrecision.HasValue) { var dobPrecisionValue = patientLookup[0].DobPrecision.Value; dobPrecision = dobPrecisionValue ? 1 : 0; } var gender = 0; if (patientLookup[0].Gender == "Male") { gender = 16; } else if (patientLookup[0].Gender == "Female") { gender = 17; } string dateOfBirth = string.Empty; if (patientLookup[0].DateOfBirth.HasValue) { dateOfBirth = patientLookup[0].DateOfBirth.Value.ToString("yyyy-MM-dd"); } StringBuilder sql = new StringBuilder(); sql.Append("exec pr_OpenDecryptedSession;"); sql.Append("Insert Into mst_Patient(FirstName, LastName, MiddleName, LocationID, PatientEnrollmentID, ReferredFrom, RegistrationDate, Sex, DOB, DobPrecision, MaritalStatus, Address, Phone, UserID, PosId, Status, DeleteFlag, CreateDate,MovedToPatientTable)"); sql.Append("Values("); sql.Append($"ENCRYPTBYKEY(KEY_GUID('Key_CTC'),'{patientLookup[0].FirstName}'),"); sql.Append($"ENCRYPTBYKEY(KEY_GUID('Key_CTC'),'{patientLookup[0].LastName}'),"); sql.Append($"ENCRYPTBYKEY(KEY_GUID('Key_CTC'),'{patientLookup[0].MidName}'),"); sql.Append($"'{facility.FacilityID}',"); sql.Append("' ',"); sql.Append($"'{referralId}',"); sql.Append($"'{dateOfEnrollment.ToString("yyyy-MM-dd")}',"); sql.Append($"'{gender}',"); sql.Append($"'{dateOfBirth}',"); sql.Append($"'{dobPrecision}',"); sql.Append($"'{maritalStatusId}',"); sql.Append($"ENCRYPTBYKEY(KEY_GUID('Key_CTC'),'{address}'),"); sql.Append($"ENCRYPTBYKEY(KEY_GUID('Key_CTC'),'{phone}'),"); sql.Append($"'{createdBy}',"); sql.Append($"'{facility.PosID}',"); sql.Append("0,"); sql.Append("0,"); sql.Append($"'{dateOfEnrollment.ToString("yyyy-MM-dd")}',"); sql.Append("1"); sql.Append(");"); sql.Append("SELECT Ptn_Pk, CAST(DECRYPTBYKEY([FirstName]) AS VARCHAR(50)) AS FirstName, CAST(DECRYPTBYKEY([LastName]) AS VARCHAR(50)) AS LastName, LocationID FROM [dbo].[mst_Patient] WHERE [Ptn_Pk] = SCOPE_IDENTITY();"); sql.Append("exec [dbo].[pr_CloseDecryptedSession];"); var result = await _unitOfWork.Repository <MstPatient>().FromSql(sql.ToString()); StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.Append("Insert Into Lnk_PatientProgramStart(Ptn_pk, ModuleId, StartDate, UserID, CreateDate)"); sqlBuilder.Append("Values("); sqlBuilder.Append($"'{result[0].Ptn_Pk}',"); sqlBuilder.Append("283,"); sqlBuilder.Append($"'{dateOfEnrollment.ToString("yyyy-MM-dd")}',"); sqlBuilder.Append($"'{createdBy}',"); sqlBuilder.Append($"'{dateOfEnrollment.ToString("yyyy-MM-dd")}'"); sqlBuilder.Append(");"); var insertResult = await _unitOfWork.Context.Database.ExecuteSqlCommandAsync(sqlBuilder.ToString()); StringBuilder sqlPatient = new StringBuilder(); sqlPatient.Append($"UPDATE Patient SET ptn_pk = '{result[0].Ptn_Pk}' WHERE Id = '{patientId}';"); var updateResult = await _unitOfWork.Context.Database.ExecuteSqlCommandAsync(sqlPatient.ToString()); } trans.Commit(); return(patientIdentifier); } catch (Exception ex) { trans.Rollback(); throw ex; } } }
public async Task <Result <EnrollClientResponse> > Handle(EnrollClientCommand request, CancellationToken cancellationToken) { using (var trans = _unitOfWork.Context.Database.BeginTransaction()) { try { var patientMasterVisit = new PatientMasterVisit() { PatientId = request.ClientEnrollment.PatientId, ServiceId = request.ClientEnrollment.ServiceAreaId, Start = DateTime.Now, End = null, Active = false, VisitDate = DateTime.Now, VisitScheduled = 0, VisitBy = 108, VisitType = 1, Status = 1, CreateDate = DateTime.Now, DeleteFlag = false, CreatedBy = request.ClientEnrollment.CreatedBy }; await _unitOfWork.Repository <PatientMasterVisit>().AddAsync(patientMasterVisit); await _unitOfWork.SaveAsync(); var patientEnrollment = new PatientEnrollment() { PatientId = request.ClientEnrollment.PatientId, ServiceAreaId = request.ClientEnrollment.ServiceAreaId, EnrollmentDate = request.ClientEnrollment.DateOfEnrollment, EnrollmentStatusId = 0, TransferIn = false, CareEnded = false, DeleteFlag = false, CreatedBy = request.ClientEnrollment.CreatedBy, CreateDate = DateTime.Now }; await _unitOfWork.Repository <PatientEnrollment>().AddAsync(patientEnrollment); await _unitOfWork.SaveAsync(); var patientIdentifier = new PatientIdentifier() { PatientId = request.ClientEnrollment.PatientId, PatientEnrollmentId = patientEnrollment.Id, IdentifierTypeId = 8, IdentifierValue = request.ClientEnrollment.EnrollmentNo, DeleteFlag = false, CreatedBy = request.ClientEnrollment.CreatedBy, CreateDate = DateTime.Now, Active = true }; await _unitOfWork.Repository <PatientIdentifier>().AddAsync(patientIdentifier); await _unitOfWork.SaveAsync(); trans.Commit(); return(Result <EnrollClientResponse> .Valid(new EnrollClientResponse { IdentifierValue = request.ClientEnrollment.EnrollmentNo, IdentifierId = patientIdentifier.Id })); } catch (Exception ex) { trans.Rollback(); return(Result <EnrollClientResponse> .Invalid(ex.Message)); } } }