/FileExtraction/Java_unseen/IMS-MAXIMS_openMAXIMS/Source Library/openmaxims_workspace/Pathways/src/ims/pathways/domain/HL7PathwayIf.java
//#############################################################################
//#                                                                           #
//#  Copyright (C) <2015>  <IMS MAXIMS>                                       #
//#                                                                           #
//#  This program is free software: you can redistribute it and/or modify     #
//#  it under the terms of the GNU Affero General Public License as           #
//#  published by the Free Software Foundation, either version 3 of the       #
//#  License, or (at your option) any later version.                          # 
//#                                                                           #
//#  This program is distributed in the hope that it will be useful,          #
//#  but WITHOUT ANY WARRANTY; without even the implied warranty of           #
//#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
//#  GNU Affero General Public License for more details.                      #
//#                                                                           #
//#  You should have received a copy of the GNU Affero General Public License #
//#  along with this program.  If not, see <http://www.gnu.org/licenses/>.    #
//#                                                                           #
//#  IMS MAXIMS provides absolutely NO GUARANTEE OF THE CLINICAL SAFTEY of    #
//#  this program.  Users of this software do so entirely at their own risk.  #
//#  IMS MAXIMS only ensures the Clinical Safety of unaltered run-time        #
//#  software that it builds, deploys and maintains.                          #
//#                                                                           #
//#############################################################################
//#EOH
// This code was generated by Barbara Worwood using IMS Development Environment (version 1.80 build 5589.25814)
// Copyright (C) 1995-2015 IMS MAXIMS. All rights reserved.
// WARNING: DO NOT MODIFY the content of this file

package ims.pathways.domain;

// Generated from form domain impl
public interface HL7PathwayIf extends ims.domain.DomainInterface
{
	// Generated from form domain interface definition
	/**
	* This method will retrieve the Event based on the External Event information passed in
	*/
	public ims.pathways.vo.EventVo getEventByExternalMappings(ims.pathways.configuration.vo.ExternalEventMappingRefVo externalEvent) throws ims.domain.exceptions.DomainInterfaceException;

	// Generated from form domain interface definition
	/**
	* Gets the event based on the RTT values passed in
	*/
	public ims.pathways.vo.EventVo getEventByRttValues(ims.pathways.configuration.vo.RTTEventRefVo rttEvent) throws ims.domain.exceptions.DomainInterfaceException;

	// Generated from form domain interface definition
	/**
	* Retrieves the Patient Journey for the given Pathway ID
	*/
	public ims.pathways.vo.PatientJourneyVo getPatientJourney(ims.core.vo.ReferralLiteVo referral) throws ims.domain.exceptions.DomainInterfaceException;

	// Generated from form domain interface definition
	/**
	* Creates a new Patient Journey
	*/
	public ims.pathways.vo.PatientJourneyVo createPatientJourney(ims.pathways.vo.PatientJourneyVo patientJourney, ims.core.vo.ReferralLiteVo referral, ims.core.vo.lookups.Specialty specialty, ims.core.resource.people.vo.HcpRefVo consultant, Boolean non18weekPathway) throws ims.domain.exceptions.DomainInterfaceException, ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	/**
	* This method will create a Patient Event
	*/
	public ims.pathways.vo.PatientEventVo instantiatePatientEvent(ims.pathways.vo.PatientEventVo patientEvent) throws ims.domain.exceptions.DomainInterfaceException, ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	/**
	* Gets ExternalEventMappings based on coded items
	*/
	public ims.pathways.vo.ExternalEventMappingVo getExternalEventMappings(ims.pathways.vo.ExternalEventMappingVo extMap) throws ims.domain.exceptions.DomainInterfaceException;

	// Generated from form domain interface definition
	/**
	* Gets the Rtt Event based on mapping criteria from message
	*/
	public ims.pathways.vo.RTTEventVo getRttMapping(ims.pathways.vo.RTTEventVo rttMap) throws ims.domain.exceptions.DomainInterfaceException;

	// Generated from form domain interface definition
	/**
	* This method will cancel the give patient journey
	*/
	public void endPatientJourney(ims.pathways.vo.PatientPathwayJourneyRefVo journey) throws ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	/**
	* This is called if an appointment cancel or rearrange has been called.  The previous event will have it's status changed to cancelled. Returns details of the event that was updated
	*/
	public void updatePatientEvent(ims.core.patient.vo.PatientRefVo patient, String clinicCode, ims.framework.utils.DateTime scheduledDateTime, ims.pathways.vo.lookups.EventStatus status) throws ims.domain.exceptions.DomainInterfaceException, ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	/**
	* Find the Default Pathway for the given specialty
	*/
	public ims.pathways.vo.PathwayLiteVo findDefaultPathway(ims.core.vo.lookups.Specialty specialty) throws ims.domain.exceptions.DomainInterfaceException;

	// Generated from form domain interface definition
	/**
	* Find Pseudo Pathway for the given specialty
	*/
	public ims.pathways.vo.PathwayLiteVo findPseudoPathway(ims.core.vo.lookups.Specialty specialty) throws ims.domain.exceptions.DomainInterfaceException;

	// Generated from form domain interface definition
	public ims.pathways.vo.PatientJourneyVo updatePatientJourney(ims.pathways.vo.PatientJourneyVo patientJourney, ims.pathways.vo.PathwayLiteVo pathway) throws ims.domain.exceptions.DomainInterfaceException, ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	/**
	* Retrieves the referral record found for the patient and rkey value
	*/
	public ims.core.vo.HL7ReferralVo getReferralByPatientAndRKEY(ims.core.patient.vo.PatientRefVo patient, String referralKey) throws ims.domain.exceptions.DomainInterfaceException;

	// Generated from form domain interface definition
	/**
	* Saves the referral record
	*/
	public ims.core.vo.HL7ReferralVo saveReferral(ims.core.vo.HL7ReferralVo referral) throws ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	/**
	* Return the Pathway Event associated with the given taxonomy type and code mapping values
	*/
	public ims.pathways.vo.EventVo getEventByTaxonomyMap(ims.core.vo.lookups.TaxonomyType taxType, String code) throws ims.domain.exceptions.DomainInterfaceException;

	// Generated from form domain interface definition
	/**
	* Returns the Target found for the Taxonomy Map codes
	*/
	public ims.pathways.configuration.vo.TargetRefVo getTargetByTaxonomyMap(ims.core.vo.lookups.TaxonomyType taxType, String value) throws ims.domain.exceptions.DomainInterfaceException;

	// Generated from form domain interface definition
	public ims.pathways.vo.PatientEventVo instantiatePatientEvent(ims.pathways.vo.PatientEventVo patientEvent, String eventTargetPASMappingValue) throws ims.domain.exceptions.DomainInterfaceException, ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	/**
	* This method will take the target out of scope
	*/
	public void takeTargetOutOfScopeWithoutEvent(ims.pathways.configuration.vo.TargetRefVo target, ims.pathways.vo.PatientPathwayJourneyRefVo journey) throws ims.domain.exceptions.DomainInterfaceException, ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	public ims.pathways.vo.PatientEventVo instantiatePatientEvent(ims.pathways.vo.PatientEventVo patientEvent, String eventTargetPASMappingValue, Boolean rTTClockImpact) throws ims.domain.exceptions.DomainInterfaceException, ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	/**
	* Method to update Patient Journey information when Referral Received DAte is modified
	*/
	public void updateJourneyFromReferralDateChange(ims.pathways.vo.PatientPathwayJourneyRefVo journey, ims.framework.utils.Date originalReferralReceivedDate, ims.framework.utils.Date newReferralReceivedDate) throws ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	/**
	* Used from PatientJourney form to load bring a target into scope without instantiating a PatientEvent
	*/
	public Boolean bringTargetIntoScopeWithoutEvent(ims.pathways.configuration.vo.TargetRefVo target, ims.pathways.vo.PatientPathwayJourneyRefVo journey, ims.framework.utils.Date eventDateTime) throws ims.domain.exceptions.DomainInterfaceException, ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	/**
	* Used from PatientJourney form to load bring a target into scope without instantiating a PatientEvent
	*/
	public Boolean bringTargetIntoScopeWithoutEvent(ims.pathways.domain.objects.PatientPathwayJourney journey, ims.pathways.configuration.domain.objects.PathwayTarget pathwayTarget, ims.pathways.configuration.domain.objects.Target target, ims.framework.utils.DateTime eventDateTime, Integer targetPeriod) throws ims.domain.exceptions.DomainInterfaceException, ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	public void takeTargetOutOfScopeWithoutEvent(ims.pathways.vo.PatientJourneyTargetRefVo target, ims.pathways.vo.PatientPathwayJourneyRefVo journey) throws ims.domain.exceptions.DomainInterfaceException, ims.domain.exceptions.StaleObjectException;

	// Generated from form domain interface definition
	/**
	* Pass CatsReferral to the method if available
	*/
	public ims.pathways.vo.PatientEventVo instantiatePatientEvent(ims.pathways.vo.PatientEventVo patientEvent, ims.RefMan.vo.CatsReferralRefVo catsReferral) throws ims.domain.exceptions.DomainInterfaceException, ims.domain.exceptions.StaleObjectException;
}
