Esempio n. 1
0
        public JsonModel CreateUpdatePatient(PatientDTO patientDTO, TokenModel token)
        {
            token.OrganizationID = 2;
            token.UserID         = 1;

            Patients patient = null;

            // check user already exist or not
            patient = iPatientRepository.CheckExistingPatient <Patients>(patientDTO.Email, patientDTO.MRN, patientDTO.Id, token).FirstOrDefault();
            if (patient != null)
            {
                //response
                response.data       = new object();
                response.Message    = StatusMessage.PatientAlreadyExist;
                response.StatusCode = 422;
                return(response);
            }
            // Encrypt the fields data
            PHIEncryptedDTO pHIEncryptedModel = iPatientRepository.GetEncryptedPHIData <PHIEncryptedDTO>(patientDTO.FirstName, patientDTO.MiddleName, patientDTO.LastName, patientDTO.DOB != null ? patientDTO.DOB.ToString("yyyy-MM-dd HH:mm:ss.fffffff") : null, patientDTO.Email, patientDTO.SSN, patientDTO.MRN, null, null, null, null, null, null, null).FirstOrDefault();

            // save client
            if (patientDTO.Id == 0)
            {
                patient = new Patients();
                PatientMapToEntity(patientDTO, patient, pHIEncryptedModel, token, "add");
                iPatientRepository.Create(patient);
                iPatientRepository.SaveChanges();
                response.Message    = StatusMessage.ClientCreated;
                response.StatusCode = (int)HttpStatusCodes.OK;
            }
            // update client
            else
            {
                patient = iPatientRepository.GetFirstOrDefault(a => a.Id == patientDTO.Id && a.IsDeleted == false && a.IsActive == true);
                // Map DTO Model to entity
                PatientMapToEntity(patientDTO, patient, pHIEncryptedModel, token, "update");
                iPatientRepository.Update(patient);
                iPatientRepository.SaveChanges();
                response.data       = patientDTO;
                response.Message    = StatusMessage.ClientUpdated;
                response.StatusCode = (int)HttpStatusCodes.OK;
            }
            return(response);
        }