/// <summary> /// Find all the studies for a specific patient /// <param name="patientId">The id of the patient</param> /// <param name="patientName">The name of the patient</param> /// </summary> public IList<DataSet> CFindStudy(string patientId, string patientName) { string queryKey = _aAssociateRequest.ApplicationEntityTitle + _port + _hostName + patientId + patientName; if (_cacheManager.ContainsKey(queryKey)) { return _cacheManager[queryKey]; } const string sopClassUniqueId = UIDs.StudyRootQueryRetrieveInformationModelFIND; var dataset = new DataSet(); dataset.FileMetaInfo = GenerateFileMetaInfo(sopClassUniqueId); dataset.PutDA(Tags.StudyDate); dataset.PutTM(Tags.StudyTime); dataset.PutSH(Tags.AccessionNumber); dataset.PutCS(Tags.QueryRetrieveLevel, "STUDY"); dataset.PutCS(Tags.ModalitiesInStudy); dataset.PutLO(Tags.InstitutionName); dataset.PutPN(Tags.PerformingPhysicianName); dataset.PutPN(Tags.ReferringPhysicianName); dataset.PutLO(Tags.StudyDescription); dataset.PutPN(Tags.PatientName, patientName); dataset.PutLO(Tags.PatientID, patientId); dataset.PutDA(Tags.PatientBirthDate); dataset.PutCS(Tags.PatientSex); dataset.PutAS(Tags.PatientAge); dataset.PutUI(Tags.StudyInstanceUniqueId); dataset.PutSH(Tags.StudyID); List<DataSet> datasets = RetrieveDatasetsFromServiceClassProvider(dataset, sopClassUniqueId); if (datasets.Any()) { _cacheManager.Add(queryKey, datasets); } return datasets; }
/// <summary> /// Find all the studies for the studies Instance UniqueIds /// <param name="studyInstanceUniqueIds">The studies' instance UniqueIds</param> /// </summary> public IList<DataSet> CFindStudies(IEnumerable<string> studyInstanceUniqueIds) { const string sopClassUniqueId = UIDs.StudyRootQueryRetrieveInformationModelFIND; var dataset = new DataSet(); dataset.FileMetaInfo = GenerateFileMetaInfo(sopClassUniqueId); dataset.PutDA(Tags.StudyDate); dataset.PutTM(Tags.StudyTime); dataset.PutSH(Tags.AccessionNumber); dataset.PutCS(Tags.QueryRetrieveLevel, "STUDY"); dataset.PutCS(Tags.ModalitiesInStudy); dataset.PutLO(Tags.InstitutionName); dataset.PutPN(Tags.ReferringPhysicianName); dataset.PutLO(Tags.StudyDescription); dataset.PutPN(Tags.PatientName); dataset.PutLO(Tags.PatientID); dataset.PutDA(Tags.PatientBirthDate); dataset.PutCS(Tags.PatientSex); dataset.PutAS(Tags.PatientAge); dataset.PutUI(Tags.StudyInstanceUniqueId, studyInstanceUniqueIds.ToArray()); dataset.PutSH(Tags.StudyID); return studyInstanceUniqueIds.Any() ? RetrieveDatasetsFromServiceClassProvider(dataset, sopClassUniqueId) : new List<DataSet>(); }