示例#1
0
        public bool Save(ParticipationConsentSignatureModel model, long orgRoleUserId)
        {
            var eventCustomer = _eventCustomerRepository.GetById(model.EventCustomerId);

            if (eventCustomer == null)
            {
                return(false);
            }

            var signatureLocation = _mediaRepository.GetParticipationConsentSignatureLocation(eventCustomer.EventId, eventCustomer.CustomerId);

            var version = _participationConsentSignatureRepository.GetLatestVersion(model.EventCustomerId);

            var participationConsentSignature = new ParticipationConsentSignature()
            {
                EventCustomerId = model.EventCustomerId,
                Version         = version,
                IsActive        = true,
                CreatedBy       = orgRoleUserId,
                DateCreated     = DateTime.Now
            };

            if (!string.IsNullOrWhiteSpace(model.SignatureBytes))
            {
                var fileName = "Signature_" + Guid.NewGuid() + ".jpg";

                var signatureImageFile = SaveSignatureImage(model.SignatureBytes, orgRoleUserId, signatureLocation, fileName);

                participationConsentSignature.SignatureFileId   = signatureImageFile.Id;
                participationConsentSignature.ConsentSignedDate = DateTime.Now;
            }

            if (!string.IsNullOrWhiteSpace(model.InsuranceSignatureBytes))
            {
                var fileName = "InsuranceSignature_" + Guid.NewGuid() + ".jpg";

                var technicianImageFile = SaveSignatureImage(model.InsuranceSignatureBytes, orgRoleUserId, signatureLocation, fileName);

                participationConsentSignature.InsuranceSignatureFileId   = technicianImageFile.Id;
                participationConsentSignature.InsuranceConsentSignedDate = DateTime.Now;
            }

            _participationConsentSignatureRepository.Save(participationConsentSignature);

            if (participationConsentSignature.SignatureFileId > 0 && participationConsentSignature.InsuranceSignatureFileId > 0)
            {
                eventCustomer.HIPAAStatus = RegulatoryState.Signed;
                eventCustomer.IsParticipationConsentSigned = true;

                _eventCustomerRepository.Save(eventCustomer);
            }
            else
            {
                eventCustomer.IsParticipationConsentSigned = false;
                _eventCustomerRepository.Save(eventCustomer);
            }

            return(true);
        }
示例#2
0
        public ParticipationConsentSignatureModel GetParticipationConsentSignature(long eventCustomerId)
        {
            var participationConsentSignature = _participationConsentSignatureRepository.GetByEventCustomerId(eventCustomerId);

            if (participationConsentSignature == null)
            {
                return(new ParticipationConsentSignatureModel
                {
                    EventCustomerId = eventCustomerId,
                    InsuranceSignatureBytes = null,
                    SignatureBytes = null,
                });
            }

            var eventCustomer          = _eventCustomerRepository.GetById(eventCustomerId);
            var signatureFile          = _fileRepository.GetById(participationConsentSignature.SignatureFileId);
            var insuranceSignatureFile = _fileRepository.GetById(participationConsentSignature.InsuranceSignatureFileId);

            var signatureFileName          = signatureFile.Path;
            var insuranceSignatureFileName = insuranceSignatureFile.Path;
            var mediaLocation                      = _mediaRepository.GetParticipationConsentSignatureLocation(eventCustomer.EventId, eventCustomer.CustomerId);
            var signatureFilePath                  = Path.Combine(mediaLocation.PhysicalPath, signatureFileName);
            var insuranceSignatureFilePath         = Path.Combine(mediaLocation.PhysicalPath, insuranceSignatureFileName);
            var participationConsentSignatureModel = new ParticipationConsentSignatureModel
            {
                EventCustomerId = eventCustomerId
            };

            if (File.Exists(signatureFilePath))
            {
                var FileByte = File.ReadAllBytes(signatureFilePath);
                participationConsentSignatureModel.SignatureBytes = Convert.ToBase64String(FileByte);
            }
            if (File.Exists(insuranceSignatureFilePath))
            {
                var FileByte = File.ReadAllBytes(insuranceSignatureFilePath);
                participationConsentSignatureModel.InsuranceSignatureBytes = Convert.ToBase64String(FileByte);
            }


            return(participationConsentSignatureModel);
        }
示例#3
0
        public MobileResponseModel Save([FromBody] ParticipationConsentSignatureModel model)
        {
            try
            {
                _logger.Info("Participation Consent (Save) EventCustomerId : " + model.EventCustomerId);

                var isSuccess = _participationConsentService.Save(model, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId);
                if (isSuccess)
                {
                    return(new MobileResponseModel
                    {
                        IsSuccess = true,
                        Message = "Matrix Consent saved successfully."
                    });
                }
                else
                {
                    return(new MobileResponseModel
                    {
                        IsSuccess = false,
                        Message = "Unable to save Matrix Consent."
                    });
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Error while saving Matrix Consent.");
                _logger.Error("Message : " + ex.Message);
                _logger.Error("Stack Trace : " + ex.StackTrace);

                return(new MobileResponseModel
                {
                    IsSuccess = false,
                    Message = string.Format("Error while saving Matrix Consent. Message : {0}", ex.Message)
                });
            }
        }