package org.dcm4chee.archive.qc;
import java.util.Collection;
import org.dcm4che3.data.Attributes;
import org.dcm4chee.archive.entity.Patient;
import org.dcm4chee.archive.entity.history.InstanceHistory;
import org.dcm4chee.archive.sc.StructuralChangeContainer;
import org.dcm4chee.archive.store.scu.CStoreSCUContext;
public interface QCRetrieveBean {
/**
* Requires Reference Update.
* Used by the RetrieveQCDecorator to check if the object being retrieved
* requires a reference update.
* Checks for if the study was QCed (exists as old or next in the study table)
* The studyinstance uid is provided or a patient in which case all
* studies of the patient are used for the query.
* @param studyInstanceUID
* UID for a study under investigation
* @param attrs
* Attributes with id for the patient
* whose studies are under investigation
* @return the QC event
*/
public boolean requiresReferenceUpdate(String studyInstanceUID, Patient patient);
/**
* Scan For Referenced Study UIDs.
* Used by the RetrieveQCDecorator to get the list of referenced
* study uids required for the query to get the upadted references.
*
* @param attrs
* Attributes for the retrieved object
* @return boolean
*/
public void scanForReferencedStudyUIDs(Attributes attrs, Collection<String> initialColl);
/**
* Get Referenced History
* Used by the RetrieveQCDecorator to get the list of all instances
* from the history tables belonging to the given studies.
* @param retrieveContext
*
* @param referencedStudyInstanceUIDs
* A collection of study instance uids
* @return a collection of instance history
*/
public Collection<InstanceHistory> getReferencedHistory(CStoreSCUContext ctx,
Collection<String> referencedStudyInstanceUIDs);
// /**
// * Re-Calculate Query Attributes
// * Used by the QCPostProcessor to recalculate query
// * attributes for study and series.
// * @param event
// *
// * @return void
// */
// public void recalculateQueryAttributes(QCEvent event);
/**
* Re-Calculate Query Attributes
* Used by the QCPostProcessor to recalculate query
* attributes for study and series.
* @param event
*
* @return void
*/
public void recalculateQueryAttributes(StructuralChangeContainer changeContainer);
}