示例#1
0
        public IActionResult CreateStudy([FromBody] StudyResource studyResource)
        {
            Guid studyId = Guid.NewGuid();

            // TODO: Clean up null checking to not duplicate checks
            Guid     facilityId                  = studyResource.Facility != null ? studyResource.Facility.Id : Guid.Empty;
            string   facilityName                = studyResource.Facility != null ? studyResource.Facility.Name : string.Empty;
            Guid     procedureId                 = studyResource.Procedure != null ? studyResource.Procedure.Id : Guid.Empty;
            string   procedureName               = studyResource.Procedure != null ? studyResource.Procedure.Name : string.Empty;
            Guid     imageSetId                  = studyResource.ImageSet != null ? studyResource.ImageSet.Id : Guid.Empty;
            string   dicomInstanceId             = studyResource.ImageSet != null ? studyResource.ImageSet.DicomInstanceId : string.Empty;
            int      totalImages                 = studyResource.ImageSet != null ? studyResource.ImageSet.TotalImages : 0;
            string   patientFirstName            = studyResource.Patient != null ? studyResource.Patient.FirstName : string.Empty;
            string   patientLastName             = studyResource.Patient != null ? studyResource.Patient.LastName : string.Empty;
            string   patientGender               = studyResource.Patient != null ? studyResource.Patient.Gender : string.Empty;
            string   patientMrn                  = studyResource.Patient != null ? studyResource.Patient.Mrn : string.Empty;
            DateTime?patientDateOfBirth          = studyResource.Patient != null ? studyResource.Patient.DateOfBirth : null;
            string   referringPhysicianFirstName = studyResource.ReferringPhysician != null ? studyResource.ReferringPhysician.FirstName : string.Empty;
            string   referringPhysicianLastName  = studyResource.ReferringPhysician != null ? studyResource.ReferringPhysician.LastName : string.Empty;

            var command = new CreateStudyCommand(studyId, facilityId, facilityName,
                                                 studyResource.AccessionNumber, procedureId, procedureName,
                                                 studyResource.ProcedureDate, studyResource.Reason, imageSetId, dicomInstanceId,
                                                 totalImages, totalImages, patientFirstName, patientLastName, patientGender, patientDateOfBirth,
                                                 patientMrn, referringPhysicianFirstName, referringPhysicianLastName);

            Task.Run(() => _commandBus.Send(command));

            return(Ok(studyId.ToString() + " created"));
        }
		public void Initialize(ReconcileStudyProcessorContext context, bool complete)
		{
			Platform.CheckForNullReference(context, "context");
			Context = context;

			ReconcileCreateStudyDescriptor desc = XmlUtils.Deserialize<ReconcileCreateStudyDescriptor>(Context.History.ChangeDescription);
			

			if (Context.History.DestStudyStorageKey == null)
			{
				CreateStudyCommand command = new CreateStudyCommand(Context, desc.Commands, complete);
				AddCommand(command);
			}
			else
			{
				MergeStudyCommand command = new MergeStudyCommand(Context, false, desc.Commands, complete);
				AddCommand(command);
			}

            if (complete)
            {
                AddCleanupCommands();
            }
		}