package gov.samhsa.spirit.wsclient.adapter;
import gov.samhsa.spirit.wsclient.dto.EhrPatientClientListDto;
import gov.samhsa.spirit.wsclient.dto.PatientDto;
import gov.samhsa.spirit.wsclient.exception.SpiritAdapterException;
import java.util.List;
import com.spirit.ehr.ws.client.generated.DocumentClientDto;
import com.spirit.ehr.ws.client.generated.EhrException_Exception;
import com.spirit.ehr.ws.client.generated.EhrPatientClientDto;
import com.spirit.ehr.ws.client.generated.EhrPolicyDiscardRsp;
import com.spirit.ehr.ws.client.generated.EhrPolicySubmitOrUpdateRsp;
import com.spirit.ehr.ws.client.generated.EhrPolicySubmitRsp;
import com.spirit.ehr.ws.client.generated.EhrPolicyUpdateRsp;
import com.spirit.ehr.ws.client.generated.EhrXdsQRsp;
import com.spirit.ehr.ws.client.generated.EhrXdsRetrRsp;
import com.spirit.ehr.ws.client.generated.FolderClientDto;
import com.spirit.ehr.ws.client.generated.PatientContentClientDto;
import com.spirit.ehr.ws.client.generated.SourceSubmissionClientDto;
import com.spirit.ehr.ws.client.generated.SpiritUserResponse;
import com.spirit.ehr.ws.client.generated.XdsSrcSubmitRsp;
import com.spirit.ehr.ws.client.generated.XdsSrcUpdateReq;
public interface SpiritAdapter {
//customized(wrapped) methods
public SpiritUserResponse usrOrgRoleLogin() throws SpiritAdapterException ;
public String login() throws SpiritAdapterException;
public void logout(String stateId) throws SpiritAdapterException;
public PatientDto createPatientByPDQ(PatientDto patientDto) throws SpiritAdapterException;
EhrPatientClientListDto queryPatientsWithPids(String patientId, String stateId) throws SpiritAdapterException;
public PatientDto updatePatientByLocId(PatientDto patientDto) throws SpiritAdapterException;
public XdsSrcSubmitRsp submitDocument(EhrPatientClientDto submitForPatient, SourceSubmissionClientDto sourceSubmission, Boolean withFolder) throws SpiritAdapterException;
EhrXdsRetrRsp retrieveDocument(DocumentClientDto wantedDocument)
throws SpiritAdapterException;
public EhrXdsQRsp queryPatientContent(EhrPatientClientDto patient, String stateId)
throws SpiritAdapterException;
EhrPatientClientDto updateDocument(XdsSrcUpdateReq xdsSrcUpdateRequest)
throws SpiritAdapterException;
public SourceSubmissionClientDto generatePolicyMetadata(String document);
XdsSrcSubmitRsp submitDocument(EhrPatientClientDto submitForPatient,
SourceSubmissionClientDto sourceSubmission, Boolean withFolder,
String stateId) throws SpiritAdapterException;
DocumentClientDto queryDocumentsByUid(String patientId,
String documentUniqueId,String stateId) throws SpiritAdapterException;
XdsSrcSubmitRsp deprecateDocument(String documentUniqueId, String patientId,
String stateId) throws SpiritAdapterException;
XdsSrcSubmitRsp deprecatePolicy(String documentUniqueId, String patientId, byte[] revokedPdfConsent)
throws SpiritAdapterException;
public XdsSrcSubmitRsp submitSignedConsent(byte[] xacmlPolicy, byte[] signedConsentPdf, byte[] pdfConsentFromXacml, byte[] pdfConsentToXacml, String xacmlPolicyId, String patientId, String country) throws SpiritAdapterException;
XdsSrcSubmitRsp deleteDocument(FolderClientDto folder,
DocumentClientDto document, EhrPatientClientDto patient,
String stateId) throws EhrException_Exception,
SpiritAdapterException;
String deleteDocuments(FolderClientDto folder,
List<DocumentClientDto> document, EhrPatientClientDto patient, String stateId) throws EhrException_Exception, SpiritAdapterException;
XdsSrcSubmitRsp deprecateDocuments(List<String> documentUniqueIdList,
String patientId, String stateId) throws SpiritAdapterException;
XdsSrcSubmitRsp deprecateDocuments(List<String> documentUniqueIdList,
EhrPatientClientDto patient,
PatientContentClientDto patientContentClientDto, String stateId)
throws SpiritAdapterException;
public XdsSrcSubmitRsp submitC32(byte[] c32file) throws SpiritAdapterException;
public SourceSubmissionClientDto generateC32Metadata(String document) ;
// Policy repository operations
public EhrPolicySubmitRsp submitPolicy(byte[] policy) throws SpiritAdapterException;
public EhrPolicySubmitRsp submitPolicies(List<byte[]> policyList) throws SpiritAdapterException;
public EhrPolicySubmitOrUpdateRsp submitOrUpdatePolicy(byte[] policy, String stateId) throws SpiritAdapterException;
public EhrPolicySubmitOrUpdateRsp submitOrUpdatePolicies(List<byte[]> policyList, String stateId) throws SpiritAdapterException;
public EhrPolicyUpdateRsp updatePolicy(byte[] policy) throws SpiritAdapterException;
public EhrPolicyUpdateRsp updatePolicies(List<byte[]> policyList) throws SpiritAdapterException;
public byte[] retrievePolicy(String policyId) throws SpiritAdapterException;
public List<byte[]> retrievePolicies(List<String> listPolicySetIds, List<String> listPolicyIds) throws SpiritAdapterException;
public EhrPolicyDiscardRsp discardPolicy(String policyId, String stateId) throws SpiritAdapterException;
public EhrPolicyDiscardRsp discardPolicies(List<String> listPolicySetIds, List<String> listPolicyIds, String stateId) throws SpiritAdapterException;
}