示例#1
0
        public async Task <IActionResult> AddPNCVisitDetails([FromBody] AddPNCVisitCommand command)
        {
            var response = await _mediator.Send(command, Request.HttpContext.RequestAborted);

            if (response.IsValid)
            {
                return(Ok(response.Value));
            }

            return(BadRequest(response));
        }
        public async Task <Result <AddPNCVisitResponse> > Handle(AddPNCVisitCommand request, CancellationToken cancellationToken)
        {
            try
            {
                //PatientMasterVisitService patientMasterVisitService = new PatientMasterVisitService(_commonUnitOfWork);
                //PatientEncounterService patientEncounterService = new PatientEncounterService(_commonUnitOfWork);
                //LookupLogic lookupLogic = new LookupLogic(_commonUnitOfWork);
                VisitDetailsService visitDetailsService = new VisitDetailsService(_unitOfWork);

                //var patientMasterVisit = await patientMasterVisitService.Add(request.PatientId, 1, DateTime.Today, 0, request.VisitDate, request.VisitDate, 0, 0, request.VisitType, 0);

                //var encounterTypeId = await lookupLogic.GetLookupIdbyName(request.EncounterType);

                //var encounter = await patientEncounterService.Add(request.PatientId, encounterTypeId, patientMasterVisit.Id, DateTime.Now, DateTime.Now, request.ServiceAreaId, request.UserId);

                PatientProfile patientProfile = new PatientProfile()
                {
                    PatientId            = request.PatientId,
                    PatientMasterVisitId = request.PatientMasterVisitId,
                    VisitType            = request.VisitType,
                    CreatedBy            = (request.UserId < 1) ? 1 : request.UserId,
                    CreateDate           = DateTime.Now,
                    DaysPostPartum       = request.DaysPostPartum,
                    VisitNumber          = request.VisitNumber,
                    AgeMenarche          = request.AgeMenarche
                };

                var profile = await visitDetailsService.AddPatientProfile(patientProfile);

                return(Result <AddPNCVisitResponse> .Valid(new AddPNCVisitResponse { ProfileId = profile.Id }));
            }
            catch (Exception ex)
            {
                Log.Error("An error occured while adding PNC patient visit details", ex);
                return(Result <AddPNCVisitResponse> .Invalid(ex.Message));
            }
        }