<!---careplan.cfc ---> 
<cfcomponent displayname="Careplans"   hint="ColdFusion Component for  Careplans">
	
	<cffunction name="init" displayname="Initialize Component" access="public" returntype="string" hint="I initialize and return the Careplans object.">
		<cfreturn "sucess">
	</cffunction>

    <cffunction name="checkcareplan"  access="remote" output="Yes" returntype="query">   
		 <cfargument name="Assmt_ID" required="yes" default="0">
		 <cfargument name="Type" required="yes" default="0">
		 <cfargument name="Skill" required="yes" default="0">
		 <cfargument name="step" required="yes" default="0">
		 <cfargument name="Description" required="no" default="0">
		
		<cfquery  name="getcareplans" datasource="#Application.DataSrc#">
			SELECT IFNULL(Careplan_ID,0) as pCareplan_ID, pCareplan.* FROM #Request.prefix_db_agency#.pCareplan 
			WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="cf_sql_varchar">
			AND Type = <cfqueryparam value="#arguments.Type#"  cfsqltype="cf_sql_varchar">
			<cfif arguments.step NEQ 2>
				AND Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
			</cfif>
			<cfif arguments.step NEQ 2 and arguments.step NEQ 4>
				AND Status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
			</cfif>
			<cfif arguments.Description neq 0 AND Type NEQ 'discharge_plan' AND Type NEQ 'patient_goal' >
				AND Description = <cfqueryparam value="#arguments.Description#"  cfsqltype="cf_sql_varchar">
			</cfif>
		</cfquery>
		<cfreturn getcareplans />

	</cffunction>

	<cffunction name="checkproblems"  access="remote" output="Yes" returntype="query">   
		<cfargument name="Assmt_ID" required="yes" default="0">
		<cfargument name="Skill" required="yes" default="0">
		<cfargument name="Path_ID" required="no" default="0">
		
		<cfquery  name="getprob" datasource="#Application.DataSrc#">
			SELECT pProblem.* FROM #Request.prefix_db_agency#.pProblem 
			WHERE pProblem.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
			AND pProblem.Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
			<cfif arguments.Path_ID neq 0>
				AND pProblem.Path_ID = <cfqueryparam value="#arguments.Path_ID#"  cfsqltype="CF_SQL_INTEGER">
			</cfif>
			Order by M0_No ASC
		</cfquery>
		<cfreturn getprob />

	</cffunction>

	<cffunction name="updatestatus"  access="remote" output="Yes" returnformat="plain" returntype="string">   
		 <cfargument name="Assmt_ID" required="yes" default="0">
		 <cfargument name="AutoCareplan_IDs" required="yes" default="0">
		 <cfargument name="status" required="no" default="3">
		
		<cfif arguments.Assmt_ID neq 0 >
			<!--- Soft-delete procedures across the admit so recert/carryforward copies do not stay active --->
			<cfif Val(arguments.status) EQ 1>
				<cfquery name="getProcToCascadeDelete" datasource="#Application.DataSrc#">
					SELECT c.Item_ID, c.Description, c.Skill, c.Type, a.Admit_ID
					FROM #Request.prefix_db_agency#.pCareplan c
					INNER JOIN #Request.prefix_db_agency#.pAssessments a ON a.Assmt_ID = c.Assmt_ID
					WHERE c.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#" CFSQLType="CF_SQL_INTEGER">
						AND c.AutoCareplan_ID IN (<cfqueryparam CFSQLType="CF_SQL_INTEGER" value="#arguments.AutoCareplan_IDs#" list="yes">)
						AND c.Type = <cfqueryparam value="procedure" cfsqltype="cf_sql_varchar">
				</cfquery>
				<cfloop query="getProcToCascadeDelete">
					<cfquery name="cascadeDeleteProcCopies" datasource="#Application.DataSrc#">
						UPDATE #Request.prefix_db_agency#.pCareplan
						SET status = <cfqueryparam value="1" CFSQLType="CF_SQL_INTEGER">,
							Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
							Change_by = <cfqueryparam value="#session.employeeid#" CFSQLType="CF_SQL_INTEGER">
						WHERE Status = 0
							AND Type = <cfqueryparam value="procedure" cfsqltype="cf_sql_varchar">
							AND Skill = <cfqueryparam value="#getProcToCascadeDelete.Skill#" cfsqltype="cf_sql_varchar">
							AND Item_ID = <cfqueryparam value="#Val(getProcToCascadeDelete.Item_ID)#" cfsqltype="cf_sql_integer">
							AND Description = <cfqueryparam value="#getProcToCascadeDelete.Description#" cfsqltype="cf_sql_varchar">
							AND Assmt_ID IN (
								SELECT Assmt_ID
								FROM #Request.prefix_db_agency#.pAssessments
								WHERE Admit_ID = <cfqueryparam value="#getProcToCascadeDelete.Admit_ID#" cfsqltype="cf_sql_integer">
									AND Status = 0
							)
					</cfquery>
				</cfloop>
			</cfif>

			<cfquery  name="updatepCareplan" datasource="#Application.DataSrc#">
			    UPDATE #Request.prefix_db_agency#.pCareplan
			    	SET status 		= <cfqueryparam value = "#arguments.status#" CFSQLType ="CF_SQL_INTEGER">,
					Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
					Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER"> 
					WHERE Assmt_ID =  <cfqueryparam value = "#arguments.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
				 	AND AutoCareplan_ID IN  (<cfqueryparam CFSQLType="CF_SQL_INTEGER" 
	                              value="#arguments.AutoCareplan_IDs#" 
	                              list="yes" >) 
			</cfquery>
		</cfif>
		<cfreturn "Success" />

	</cffunction>


	<cffunction name="updategoalstatus"  access="remote" output="Yes" returnformat="plain" returntype="string">   
		 <cfargument name="Assmt_ID" required="yes" default="0">
		 <cfargument name="AutoCareplan_IDs" required="yes" default="0">
		 <cfargument name="status" required="no" default="3">
		
		<cfif arguments.Assmt_ID neq 0 >
			<cfquery  name="updatepCareplan" datasource="#Application.DataSrc#">
			    UPDATE #Request.prefix_db_agency#.pCareplan
			    	SET status = <cfqueryparam value = "#arguments.status#" CFSQLType ="CF_SQL_INTEGER">,
			    	CMSOrder_ID  = 0,
					Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
					Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER"> 
					WHERE Assmt_ID =  <cfqueryparam value = "#arguments.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
				 	AND AutoCareplan_ID IN  (<cfqueryparam CFSQLType="CF_SQL_INTEGER" 
	                              value="#arguments.AutoCareplan_IDs#" 
	                              list="yes" >) 
			</cfquery>
		</cfif>
		<cfreturn "Success" />

	</cffunction>

	<cffunction name="updateGoalSpecifics"  access="remote" output="Yes" returnformat="plain" returntype="string">   
		 <cfargument name="AutoCareplan_ID" required="yes" default="0">
		 <cfargument name="Specifics" required="yes" default="">
		 <cfargument name="Assmt_ID" required="yes" default="0">
		
		<cfif arguments.AutoCareplan_ID neq 0 AND arguments.Specifics neq "">
			<cfquery  name="updatepCareplan" datasource="#Application.DataSrc#">
			    UPDATE #Request.prefix_db_agency#.pCareplan
			    	SET Specifics = <cfqueryparam value = "#arguments.Specifics#" CFSQLType ="CF_SQL_LONGVARCHAR">,
					Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
					Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER"> 
					WHERE AutoCareplan_ID =  <cfqueryparam value = "#arguments.AutoCareplan_ID#" CFSQLType ="CF_SQL_INTEGER">
					AND Assmt_ID = <cfqueryparam value = "#arguments.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
			</cfquery>
		</cfif>
		<cfreturn "Success" />

	</cffunction>


	<cffunction name="updateResolveDate"  access="remote" output="Yes" returnformat="plain" returntype="string">   
		 <cfargument name="Assmt_ID" required="yes" default="0">
		 <cfargument name="Careplan_ID" required="yes" default="0">
		 <cfargument name="status" required="no" default="3">
		
		<cfif arguments.Assmt_ID neq 0 >
			<cfset generalCFC = createObject("component", "components.general.progressnotes") />
			<cfset getsucess= generalCFC.retire_careplans("#arguments.Careplan_ID#")/>
			<cfquery  name="updatepCareplan" datasource="#Application.DataSrc#">
			    UPDATE #Request.prefix_db_agency#.pCareplan
			    	SET Date_Resolve = <cfqueryparam value = "" CFSQLType ="CF_SQL_DATE" null="yes">,
			    	goal_met  = <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
					Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
					Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER"> 
					WHERE Assmt_ID =  <cfqueryparam value = "#arguments.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
				 	AND Careplan_ID = <cfqueryparam CFSQLType="CF_SQL_INTEGER" value="#arguments.Careplan_ID#" >
				 	AND status = 0
	                             
			</cfquery>
		</cfif>
		<cfreturn "Success" />

	</cffunction>


	<cffunction name="updatestatusdescription"  access="remote" output="Yes" returnformat="plain" returntype="string">   
		 <cfargument name="Assmt_ID" required="yes" default="0">
		 <cfargument name="Skill" required="yes" default="SN">
		 <cfargument name="description" required="yes" default="">
		 <cfargument name="Item_ID" required="yes" default="0"> 
		 <cfargument name="status" required="no" default="3">
		 <cfargument name="AutoCareplan_ID" required="no" default="0">
		
		<cfif arguments.Assmt_ID neq 0 >
			<cfquery  name="updatepCareplan" datasource="#Application.DataSrc#">
			    UPDATE #Request.prefix_db_agency#.pCareplan
			    	SET status 		= <cfqueryparam value = "#arguments.status#" CFSQLType ="CF_SQL_INTEGER">,
					Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
					Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER"> 
					WHERE Assmt_ID =  <cfqueryparam value = "#arguments.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
					AND Item_ID =  <cfqueryparam value = "#arguments.Item_ID#" CFSQLType ="CF_SQL_INTEGER">
				 	<!--- AND Description = <cfqueryparam CFSQLType="CF_SQL_VARCHAR"  value="#arguments.description#" > --->
				 	AND Skill = <cfqueryparam CFSQLType="CF_SQL_VARCHAR"  value="#arguments.Skill#" >
				 	<cfif AutoCareplan_ID NEQ '0'>
				 		AND AutoCareplan_ID =  <cfqueryparam value = "#arguments.AutoCareplan_ID#" CFSQLType ="CF_SQL_INTEGER">
				 	</cfif>
			</cfquery>
		</cfif>
		<cfreturn "Success" />

	</cffunction>

	<cffunction name="getassessment"  access="remote" output="Yes" returntype="query">   
		 <cfargument name="Assmt_ID" required="yes" default="0">
		 <cfquery  name="getass" datasource="#Application.DataSrc#">
				SELECT  * FROM #Request.prefix_db_agency#.pAssessments 
				WHERE Assmt_ID =  <cfqueryparam value = "#arguments.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
				AND status = <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">
		</cfquery>
		<cfreturn getass />
	</cffunction>

	<cffunction name="getincrement_value"  access="remote" output="Yes" returnformat="plain" returntype="string">   
		 <cfargument name="Assmt_ID" required="yes" default="0">
		 <cfargument name="Skill" required="yes" default="0">
		 <cfargument name="Pathway_ID" required="yes" default="0">

		 	<cfset increamentid = 0 >
			<cfquery  name="getass" datasource="#Application.DataSrc#">
				SELECT  * FROM #Request.prefix_db_agency#.pAssessments 
				WHERE Assmt_ID =  <cfqueryparam value = "#arguments.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
				AND status = <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">
			</cfquery>
			<cfquery  name="getproblem" datasource="#Application.DataSrc#">
				SELECT  * FROM #Request.prefix_db_agency#.pProblem 
				WHERE Assmt_ID = <cfqueryparam value = "#arguments.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
				AND status = <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">
				AND Path_ID =  <cfqueryparam value = "#arguments.Pathway_ID#" CFSQLType ="CF_SQL_INTEGER">
				AND Skill  = '#arguments.Skill#'
			</cfquery>
			<cfquery name="getallOASIS" datasource="#Application.DataSrc#">
				SELECT * FROM  #Request.prefix_db_agency#.pAssessments 
				WHERE Admit_ID =  <cfqueryparam value = "#getass.Admit_ID#" CFSQLType ="CF_SQL_INTEGER">
				AND status = <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER"> ORDER BY F176 DESC
			</cfquery>
		 	<cfif arguments.Skill EQ 'PT'>
				<cfif   getass.F26 EQ  '1 - Start of care - further visits planned - Physical Therapy'>
			 		<cfset assmnt_reason = '1 - Start of care - further visits planned - Physical Therapy' />
			 	<cfelse>
			 		<cfset assmnt_reason = 'PT Adult Evaluation' />
			 	</cfif>
			<cfelse>
				<cfif   getass.F26 EQ  '1 - Start of care - further visits planned - Occupational Therapy'>
			 		<cfset assmnt_reason = '1 - Start of care - further visits planned - Occupational Therapy' />
			 	<cfelse>
			 		<cfset assmnt_reason = 'OT Adult Evaluation' />
			 	</cfif>	
			</cfif>
			

			<cfquery  name="getassmtthraphyupdate" datasource="#Application.DataSrc#">
		           SELECT * FROM #Request.prefix_db_lookup#.Assmt_Update_Therapy1
		            WHERE Source = <cfqueryparam value = "#assmnt_reason#" CFSQLType ="cf_sql_varchar">
		            AND Assmt_Update_Therapy1.Update  = <cfqueryparam value = "#getass.F26#" CFSQLType ="cf_sql_varchar"> 
	 	            AND Pathway_ID = '#arguments.Pathway_ID#'
	 	            AND Problem = '#getproblem.Description#'
	 	            AND Severity =  '#getproblem.Severity#'
			</cfquery>
			<cfif getassmtthraphyupdate.recordcount gt 0 AND getproblem.recordCount GT 0>
				<cfloop query = "getassmtthraphyupdate">
				   <cfquery name="getsourceOASIS" dbtype="query">
						SELECT #FieldID1# AS Fieldanswer1,#FieldID2# AS Fieldanswer2 
						 FROM  getallOASIS
						WHERE F26 =  '#assmnt_reason#'
		 			</cfquery>
		 			<cfif LEFT(getsourceOASIS.Fieldanswer1,1) EQ Answer1 
	 						AND LEFT(getsourceOASIS.Fieldanswer2,1) EQ Answer2>
		 				<!--- <cfdump var="#getsourceOASIS#"> --->
						<!--- Validate variables before using in query --->
						<cfset incrmtValue = 0>
						<cfset problemID = 0>
						<cfif IsDefined("getassmtthraphyupdate.Incrmt1") AND getassmtthraphyupdate.Incrmt1 NEQ "" AND IsNumeric(getassmtthraphyupdate.Incrmt1)>
							<cfset incrmtValue = Val(getassmtthraphyupdate.Incrmt1)>
							<cfset increamentid = incrmtValue />
						</cfif>
						<cfif IsDefined("getproblem.Problem_ID") AND getproblem.Problem_ID NEQ "" AND IsNumeric(getproblem.Problem_ID) AND getproblem.Problem_ID GT 0>
							<cfset problemID = Val(getproblem.Problem_ID)>
						</cfif>
						<!--- Only execute update if both values are valid --->
						<cfif incrmtValue GT 0 AND problemID GT 0>
							<cfquery  name="update_problem" datasource="#Application.DataSrc#">
				            UPDATE  #Request.prefix_db_agency#.pProblem
				            	SET problem_Incrmt1 = <cfqueryparam value="#incrmtValue#" cfsqltype="CF_SQL_INTEGER">
				            WHERE Problem_ID = <cfqueryparam value="#problemID#" cfsqltype="CF_SQL_INTEGER">
			 	            AND status = <cfqueryparam value="0" cfsqltype="CF_SQL_INTEGER">
							</cfquery>
						</cfif>
					</cfif>
				</cfloop>
			</cfif>		 
		<cfreturn increamentid />
	</cffunction>


	<cffunction name="getscareplan"  access="remote" output="Yes" returntype="query">   
		 <cfargument name="Assmt_ID" required="yes" default="0">
		 <cfargument name="Type" required="yes" default="0">
		 <cfargument name="Skill" required="yes" default="0">
		 <cfargument name="status" required="yes" default="0">
		 <cfargument name="Description" required="no" default="0">
		 <cfargument name="cron" required="no" default="0">
		
		<cfquery  name="getcareplans" datasource="#Application.DataSrc#">
			SELECT IFNULL(Careplan_ID,0) as pCareplan_ID, pCareplan.* FROM #Request.prefix_db_agency#.pCareplan 
			WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
			AND Type = <cfqueryparam value="#arguments.Type#"  cfsqltype="cf_sql_varchar">
			<cfif <!--- arguments.Type neq 'standing_order' and ---> arguments.Skill NEQ 0>
				AND Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
			</cfif>
			AND Status = <cfqueryparam value="#arguments.status#"  cfsqltype="CF_SQL_INTEGER">
			<cfif arguments.Description neq 0 >
				AND Description = <cfqueryparam value="#arguments.Description#"  cfsqltype="cf_sql_varchar">
			</cfif>
			 <cfif  arguments.cron NEQ 0>
		   		AND pCareplan.CMSOrder_ID = 0
		   		
		    </cfif>
		    <!--- <cfif arguments.cron EQ 1> 
		    	AND DATE_FORMAT(pCareplan.Date_Create, "%Y-%m-%d")  = CURDATE()
		    </cfif> --->

		</cfquery>
		<cfreturn getcareplans />
	</cffunction>

	<cffunction name="getscareplanprint"  access="remote" output="Yes" returntype="query">   
		 <cfargument name="Assmt_ID" required="yes" default="0">
		 <cfargument name="Type" required="yes" default="0">
		 <cfargument name="Skill" required="yes" default="0">
		 <cfargument name="status" required="yes" default="0">
		 <cfargument name="Description" required="no" default="0">
		
		<cfquery  name="getcareplans" datasource="#Application.DataSrc#">
			SELECT IFNULL(Careplan_ID,0) as pCareplan_ID, pCareplan.*,pPathway.Header FROM #Request.prefix_db_agency#.pCareplan 
			LEFT OUTER JOIN #Request.prefix_db_lookup#.pPathway ON pPathway.Item_ID = pCareplan.Item_ID
			WHERE pCareplan.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
			AND pCareplan.Type = <cfqueryparam value="#arguments.Type#"  cfsqltype="cf_sql_varchar">
             AND pPathway.Approved = NULL
			<cfif arguments.Type neq 'standing_order' >
				AND pCareplan.Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
			</cfif>
			AND pCareplan.Status = <cfqueryparam value="#arguments.status#"  cfsqltype="CF_SQL_INTEGER">
			<cfif arguments.Description neq 0 >
				AND pCareplan.Description = <cfqueryparam value="#arguments.Description#"  cfsqltype="cf_sql_varchar">
			</cfif>
			ORDER BY pPathway.Type_Order,pPathway.Order_ID ASC 
		</cfquery>
		<cfreturn getcareplans />
	</cffunction>

	<cffunction name="getproblems"  access="remote" output="Yes" returntype="query">   
		 <cfargument name="Assmt_ID" required="yes" default="0">
		 <cfargument name="Skill" required="yes" default="0">
		 <cfargument name="status" required="no" default="0">
		 <cfargument name="Path_ID" required="no" default="0">
		 <cfargument name="M0_No" required="no" default="0">
		 <cfargument name="diagnosis" required="no" default="0">
		 <cfargument name="cron" required="no" default="0">

		<cfquery  name="getproblem" datasource="#Application.DataSrc#">
			SELECT IFNULL(Problem_ID,0) as pProblem_ID, pProblem.*, RIGHT(M0_No, 1) as proborder_id FROM #Request.prefix_db_agency#.pProblem 
			WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
			<cfif arguments.Path_ID neq 0>
				AND Path_ID = <cfqueryparam value="#arguments.Path_ID#"  cfsqltype="CF_SQL_INTEGER">
			</cfif>
			<cfif arguments.M0_No NEQ '0' >
				AND M0_No = <cfqueryparam value="#arguments.M0_No#"  cfsqltype="cf_sql_varchar">
			</cfif>
			<cfif arguments.diagnosis EQ 1 >
				AND M0_No like 'M102%'
			</cfif>
			<cfif arguments.Skill NEQ '0' >
				AND Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
			</cfif>
			 <cfif  arguments.cron NEQ 0>
		   		AND pProblem.CMSOrder_ID = 0
		   	</cfif>
		   <!---	<cfif  arguments.cron EQ 1>
		   		AND DATE_FORMAT(pProblem.Date_Create, "%Y-%m-%d")  = CURDATE()

		    </cfif> --->
			AND Status = <cfqueryparam value="#arguments.status#"  cfsqltype="CF_SQL_INTEGER">
			ORDER BY dx_order,RIGHT(M0_No, 1) ASC
		</cfquery>
		<cfreturn getproblem />

	</cffunction>

	<cffunction name="getpathwaycareplans"  access="remote" output="Yes" returntype="query">   
		<cfargument name="Assmt_ID" required="yes" default="0">
		<cfargument name="Skill" required="yes" default="0">
		<cfargument name="Type" required="no" default="0">
		<cfargument name="pathwayids" required="no" default="0">
		<cfargument name="cron" required="no" default="0">
		
		
		<!--- <cfquery  name="getcare" datasource="#Application.DataSrc#">
		   SELECT pCareplan.*,pPathway.Param,pPathway.Pathway_ID,pPathway.Type_Order,pPathway.Order_ID,pPathway.Type as pathwaytype, pPathway.Header_No  FROM #Request.prefix_db_agency#.pCareplan 
		   LEFT OUTER JOIN #Request.prefix_db_lookup#.pPathway ON pPathway.Item_ID = pCareplan.Item_ID 
		   WHERE pCareplan.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
		   <cfif  arguments.Skill NEQ 0>
		   		AND pCareplan.Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
		   </cfif>
		   AND pCareplan.Status = <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER">
		   GROUP BY pCareplan.AutoCareplan_ID
		   ORDER BY pPathway.Type_Order,pPathway.Order_ID ASC
		</cfquery> --->

		<cfquery  name="getcare" datasource="#Application.DataSrc#">
		   SELECT pCareplan.*,pCareplan.Type AS careplantype, pPathway.Param,pPathway.Pathway_ID,pPathway.Type_Order,pPathway.Order_ID,pPathway.Type as pathwaytype , pPathway.Header, pPathway.Header_No
		    <cfif  arguments.cron EQ 0>
		     ,(SELECT GROUP_CONCAT(RIGHT(pProblem.dx_order, 2)) as order_ids
					FROM #Request.prefix_db_agency#.pProblem
					WHERE pProblem.Path_ID  = pPathway.Pathway_ID  
					AND pProblem.Assmt_ID= <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER"> AND  pProblem.Skill IN (<cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar" list="yes">)
					AND pProblem.Status =  <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER">) AS order_ids
			</cfif>
		   FROM #Request.prefix_db_agency#.pCareplan  
		   LEFT OUTER JOIN #Request.prefix_db_lookup#.pPathway ON pPathway.Item_ID = pCareplan.Item_ID AND pPathway.Type = pCareplan.Type
		   WHERE pCareplan.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
		   <cfif  arguments.Skill NEQ 0>
		   		AND pCareplan.Skill IN (<cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar" list="yes">)
		   </cfif>
		    <cfif  arguments.pathwayids NEQ 0>
		   		AND pPathway.pathway_ID  IN (<cfqueryparam value="#arguments.pathwayids#"  cfsqltype="CF_SQL_INTEGER" list="yes">)
		   </cfif>
		   AND pCareplan.Status = <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER">
		   <cfif  arguments.cron NEQ 0>
		   		AND pCareplan.CMSOrder_ID = 0
		   	</cfif>
		   	 <!---<cfif  arguments.cron EQ 1>
		   		 AND DATE_FORMAT(pCareplan.Date_Create, "%Y-%m-%d")  = CURDATE()

		    </cfif> --->
		    <!--- AND (pPathway.Approved IS NULL OR pPathway.Approved = 'Yes' OR ( pPathway.Patient_ID  = #session.cs.patientid# 
		     AND pPathway.Agency_ID = "#session.agencyid#")) --->
		   GROUP BY pCareplan.AutoCareplan_ID
		   ORDER BY Header_No ASC, pPathway.Type_Order,pPathway.Order_ID ASC
		</cfquery>

		<cfreturn getcare />

	</cffunction>


	<cffunction name="getTherapyDx"  access="remote" output="Yes" returntype="query">   
		<cfargument name="Skill" required="yes" default="0">
		<cfargument name="Path_ID" required="no" default="0">
		
		<cfquery  name="TherapyDx" datasource="#Application.DataSrc#">
			SELECT * FROM #Request.prefix_db_lookup#.pTherapyDx 
			WHERE Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
			<cfif arguments.Path_ID neq 0>
				AND Path_ID = <cfqueryparam value="#arguments.Path_ID#"  cfsqltype="CF_SQL_INTEGER">
			</cfif>
		</cfquery>

		<cfreturn TherapyDx />

	</cffunction>

	<cffunction name="get_messages"  returntype="any" access="public" output="false" >
       <cfargument name="form_name" required="yes" hint="form name">
		  <cfquery  name="getMessage" datasource="#Application.DataSrc#">
				SELECT  * FROM #Request.prefix_db_lookup#.pMessage
				WHERE form_name = <cfqueryparam VALUE="#arguments.form_name#"  cfsqltype="cf_sql_varchar">
				AND deleted != 1
				 ORDER BY message_id
			</cfquery>
        <cfreturn  getMessage>
	</cffunction> 


	<cffunction name="careplanreviewupdate"  access="remote" output="Yes"  returnformat="plain" returntype="string">   
		 <cfargument name="careplan" required="no" default="0">
		 <cfargument name="Description" required="yes" default="0">
		 <cfargument name="AutoCareplan_ID" required="yes" default="0">
		 <cfargument name="M0_No" required="no" default="">
		 <cfargument name="Severity" required="no" default="">
		 <cfargument name="Param_Lo" required="no" default="">
		 <cfargument name="Param_Hi" required="no" default="">
		 <cfargument name="Param_Other" required="no" default="">
 		 <cfargument name="Notes" required="no" default="">
 		 <cfargument name="Date_Target" required="no" default="">
 		 <cfargument name="pathwaytype" required="no" default="">
 		 <cfargument name="status" required="no" default="0">

		 <cfif arguments.AutoCareplan_ID  neq 0>
		    <cfif careplan  eq 1 >
			 	<cfquery  name="getcareplan" datasource="#Application.DataSrc#">
			 	  SELECT * FROM #Request.prefix_db_agency#.pCareplan
			 	  WHERE AutoCareplan_ID = <cfqueryparam value = "#arguments.AutoCareplan_ID#" CFSQLType ="CF_SQL_INTEGER">
				</cfquery>
				<!--- <cfset updatedstatus = updatestatus(#getcareplan.Assmt_ID#,#arguments.AutoCareplan_ID#,3) />  ---> 
				<cfset updatedstatus = updatestatusdescription(#getcareplan.Assmt_ID#,#getcareplan.Skill#,#getcareplan.Description#,#getcareplan.Item_ID#,3,#arguments.AutoCareplan_ID#) />   
					<cfif updatedstatus eq 'Success'>
						<cfif arguments.Date_Target eq "" >
							<cfset  arguments.Date_Target = #dateformat(getcareplan.Date_Target,"yyyy-mm-dd")# />
						</cfif>
						<cfquery  name="pCareplan_insert" datasource="#Application.DataSrc#">
							INSERT INTO #Request.prefix_db_agency#.pCareplan
							(
								Careplan_ID, Assmt_ID, Item_ID, Order_ID,<cfif len(getcareplan.Incrmt1) GT 0>Incrmt1,</cfif>Goal_ID, Status, Skill, Type, Description,Param_Lo,Param_Hi,Param_Other,Notes,
								<cfif arguments.Date_Target neq "" >Date_Target,</cfif>Date_Create, Created_by, Date_Change, Change_by
							) 
							VALUES
							(							
								<cfqueryparam value = "#getcareplan.Careplan_ID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "#getcareplan.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "#getcareplan.Item_ID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "#getcareplan.Order_ID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfif len(getcareplan.Incrmt1) GT 0><cfqueryparam value = "#getcareplan.Incrmt1#" CFSQLType ="CF_SQL_INTEGER">,</cfif>
								<cfqueryparam value = "#getcareplan.Goal_ID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "#arguments.status#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value="#getcareplan.Skill#"  cfsqltype="cf_sql_varchar">,
								<cfqueryparam value="#getcareplan.Type#"  cfsqltype="cf_sql_varchar">,
								<cfqueryparam value="#trim(arguments.Description)#"  cfsqltype="cf_sql_varchar">,
								<cfqueryparam value="#trim(arguments.Param_Lo)#"  cfsqltype="cf_sql_varchar">,
								<cfqueryparam value="#trim(arguments.Param_Hi)#"  cfsqltype="cf_sql_varchar">,
								<cfqueryparam value="#trim(arguments.Param_Other)#"  cfsqltype="cf_sql_varchar">,
								<cfqueryparam value="#trim(arguments.Notes)#"  cfsqltype="cf_sql_varchar">,
								<cfif arguments.Date_Target neq "" >
									<cfqueryparam value = "#arguments.Date_Target#" CFSQLType ="CF_SQL_DATE">,
								</cfif>
								<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
								<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
								<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
							)
						</cfquery>
					</cfif>


					<cfquery  name="getcareplans" datasource="#Application.DataSrc#">
						SELECT pCareplan.*,pPathway.Param,pPathway.Pathway_ID,pPathway.Type_Order,pPathway.Order_ID,pPathway.Type as pathwaytype , pPathway.Header, pPathway.Header_No ,pPathway.Value as Measurevalue 
					   FROM #Request.prefix_db_agency#.pCareplan  
					   JOIN #Request.prefix_db_lookup#.pPathway ON pPathway.Item_ID = pCareplan.Item_ID
					   WHERE pCareplan.Assmt_ID = <cfqueryparam value="#getcareplan.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
					   AND pCareplan.Skill = <cfqueryparam value="#getcareplan.Skill#"  cfsqltype="cf_sql_varchar">
					   AND pCareplan.Status = <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER">
					   AND pCareplan.Type = <cfqueryparam value="#getcareplan.Type#"  cfsqltype="cf_sql_varchar">
					    <cfif getcareplan.Type EQ 'patient_goal'>
					   		AND pCareplan.Description = 'add patient-stated goal'
					    <cfelseif getcareplan.Type EQ 'discharge_plan'>
					   		AND pCareplan.Description = 'add discharge plan'
					    <cfelseif getcareplan.Type EQ 'symptom'>
					    	 AND pPathway.Param = 'Lo-Hi' AND (pCareplan.Param_Lo =''
                     			OR pCareplan.Param_Lo IS NULL OR pCareplan.Param_Hi IS NULL OR pCareplan.Param_Hi ='')
					    </cfif>
					    GROUP BY pCareplan.AutoCareplan_ID
					</cfquery>

			    <cfset insert_action= #getcareplans.recordcount# />					
			<cfelseif pathwaytype EQ 'symptom'>		
				<cfquery  name="getsvitals" datasource="#Application.DataSrc#">
			 	  	SELECT * FROM #Request.prefix_db_agency#.pWoundsVitals
			 	  	WHERE ID = <cfqueryparam value = "#arguments.AutoCareplan_ID#" CFSQLType ="CF_SQL_INTEGER">
				</cfquery>	    
				<cfquery  name="updatepCareplan" datasource="#Application.DataSrc#">
				    UPDATE #Request.prefix_db_agency#.pWoundsVitals
				    	SET 
				    	Param_Lo 		=<cfqueryparam value="#trim(arguments.Param_Lo)#"  cfsqltype="cf_sql_varchar">,
						Param_Hi=	<cfqueryparam value="#trim(arguments.Param_Hi)#"  cfsqltype="cf_sql_varchar">,
						Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
						Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
						WHERE ID  = <cfqueryparam value = "#arguments.AutoCareplan_ID#" CFSQLType ="CF_SQL_INTEGER">
				</cfquery>
				<cfquery  name="getvitals" datasource="#Application.DataSrc#">
				       SELECT *  FROM #Request.prefix_db_agency#.pWoundsVitals
				    	WHERE Assmt_ID  = <cfqueryparam value = "#getsvitals.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
				    	AND Status = 0 
				    	AND VitalOrWound = 'vital'
				    	AND (Param_Lo IS NULL OR Param_Hi IS NULL)
				</cfquery>
				<cfset insert_action= #getvitals.recordcount# />	
			<cfelse>
			    <cfquery  name="getproblem" datasource="#Application.DataSrc#">
			 	  SELECT * FROM #Request.prefix_db_agency#.pProblem
			 	  WHERE AutoProblem_ID = <cfqueryparam value = "#arguments.AutoCareplan_ID#" CFSQLType ="CF_SQL_INTEGER">
				</cfquery>
				<cfquery  name="updatepCareplan" datasource="#Application.DataSrc#">
				    UPDATE #Request.prefix_db_agency#.pProblem
				    	SET status 		= <cfqueryparam value = "3" CFSQLType ="CF_SQL_INTEGER">,
						Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
						Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
						WHERE Assmt_ID =  <cfqueryparam value = "#getproblem.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
						AND AutoProblem_ID  IN  (<cfqueryparam CFSQLType="CF_SQL_INTEGER" 
					                              value="#getproblem.AutoProblem_ID#" 
					                              list="yes" >) 
				</cfquery>
			    <cfset ordernumbers = #arguments.M0_No# />
				<cfif arguments.M0_No neq ''>
					<cfset ordernumber = ListToArray(getproblem.M0_No,'~')>
					<cfif arrayIsDefined(ordernumber, 1)>
						<cfset OASIS_item = #ordernumber[1]# />
					<cfelse>
						<cfset OASIS_item = #ordernumber# />
					</cfif>
				 	<cfset M0_No =  OASIS_item & '~' & arguments.M0_No />
				<cfelse>
					<cfset M0_No = getproblem.M0_No />
				</cfif>
				<cfquery  name="pProblem_insert" datasource="#Application.DataSrc#">
					INSERT INTO #Request.prefix_db_agency#.pProblem
					(
						 Problem_ID, Assmt_ID, Status, Path_ID,Skill, M0_No, dx_order, Severity, Description, Notes,Date_Create, Created_by, Date_Change, Change_by
					) 
					VALUES
					(							
						<cfqueryparam value = "#getproblem.Problem_ID#" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value = "#getproblem.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value = "#getproblem.Path_ID#" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value="#getproblem.Skill#"  cfsqltype="cf_sql_varchar">,
						<cfqueryparam value="#M0_No#"  cfsqltype="cf_sql_varchar">,
						<cfqueryparam value="#ordernumbers#"  cfsqltype="CF_SQL_INTEGER">,
						<cfqueryparam value="#arguments.Severity#"  cfsqltype="cf_sql_varchar">,
						<cfqueryparam value="#trim(arguments.Description)#"  cfsqltype="cf_sql_varchar">,
						<cfqueryparam value="#arguments.Notes#"  cfsqltype="cf_sql_varchar">,
						<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
						<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
						<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
						<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
					)
				</cfquery>
				<cfset insert_action="Success" />					
			</cfif>
			<cfreturn insert_action />

		<cfelse>	
			<cfset insert_action="failure" />					
			<cfreturn insert_action />						
		</cfif>						
	</cffunction>


	<cffunction name="updateprobstatus"  access="remote" output="Yes" returnformat="plain" returntype="string">   
		 <cfargument name="Assmt_ID" required="yes" default="0">
		 <cfargument name="AutoProblem_ID" required="yes" default="0">
		 <cfargument name="status" required="no" default="1">
		
		<cfif arguments.Assmt_ID neq 0 >
			<cfquery  name="updatepProblem" datasource="#Application.DataSrc#">
			    UPDATE #Request.prefix_db_agency#.pProblem
			    	SET status 		= <cfqueryparam value = "#arguments.status#" CFSQLType ="CF_SQL_INTEGER">,
					Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
					Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER"> 
					WHERE Assmt_ID =  <cfqueryparam value = "#arguments.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
				 	AND AutoProblem_ID IN  (<cfqueryparam CFSQLType="CF_SQL_INTEGER" 
	                              value="#arguments.AutoProblem_ID#" 
	                              list="yes" >) 
			</cfquery>
		</cfif>
		<cfreturn "Success" />

	</cffunction>


	<cffunction name="delete_diagnosis"  access="remote" output="Yes" returnformat="plain" returntype="string">   
		 <cfargument name="Assmt_ID" required="yes" default="0">
		 <cfargument name="AutoProblem_ID" required="yes" default="0">
		 <cfargument name="Skill" required="yes" default="0">
		 <cfargument name="status" required="no" default="1">
		
		<cfif arguments.Assmt_ID neq 0 >
			<cfquery  name="updatepProblem" datasource="#Application.DataSrc#">
			    UPDATE #Request.prefix_db_agency#.pProblem
			    	SET status 		= <cfqueryparam value = "#arguments.status#" CFSQLType ="CF_SQL_INTEGER">,
					Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
					Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER"> 
				WHERE Assmt_ID =  <cfqueryparam value = "#arguments.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
				AND AutoProblem_ID IN  (<cfqueryparam CFSQLType="CF_SQL_INTEGER" 
	                              value="#arguments.AutoProblem_ID#" 
	                              list="yes" >) 
			</cfquery>
		</cfif>
		<cfquery  name="getprob" datasource="#Application.DataSrc#">
				SELECT pProblem.* FROM #Request.prefix_db_agency#.pProblem 
				WHERE pProblem.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
				AND Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
				AND Status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
				ORDER BY RIGHT(M0_No, 1) ASC
		</cfquery>
		<cfset insert_action = ValueList(getprob.Path_ID,"~") />
		<cfif getprob.recordcount gt 0>
        <cfreturn insert_action />
        <cfelse>
        <cfreturn '0' />
        </cfif>
	</cffunction>


	<cffunction name="getpatient"  access="remote" output="Yes" returntype="query"> 

		<cfargument name="patientid" required="yes" default="#session.cs.patientid#">
		
		<cfquery name="GetP" datasource="#Application.DataSrc#">
		    SELECT Patient_ID, Pt_Last AS Last_Name, Pt_First AS First_Name, Pt_Middle AS Middle
		    ,pPatients.*
		    FROM  #Request.prefix_db_agency#.pPatients
		    WHERE Patient_Id = <cfqueryparam value = "#arguments.patientid#" CFSQLType ="CF_SQL_INTEGER"> 
		</cfquery>
		<cfreturn GetP />
		
	</cffunction>


	<!--- #10506 / therapy eval: pCareplan goals from Assmt_Update_Therapy1 joined to active pProblem (Path_ID = Pathway_ID) --->
	<cffunction name="insertTherapyEvalGoalsFromLookup" access="private" returntype="void" output="false">
		<cfargument name="Assmt_ID" type="numeric" required="true">
		<cfargument name="Skill" type="string" required="true">
		<cfargument name="certF26" type="string" required="true">
		<cfargument name="certF178" required="true">

		<cfif arguments.Skill NEQ 'PT' AND arguments.Skill NEQ 'OT'>
			<cfreturn />
		</cfif>
		<cfif LEFT(arguments.certF26, 1) NEQ '1' AND LEFT(arguments.certF26, 1) NEQ '4'>
			<cfreturn />
		</cfif>

		<cfset therapySource = arguments.Skill & ' Adult Evaluation' />
		<cfset ggPrefix = IIF(arguments.Skill EQ 'OT', DE('GG0130'), DE('GG0170')) />
		<cfset includeGG0130OnPT = false />
		<cfif arguments.Skill EQ 'PT'>
			<cfquery name="getOTOrderedForTherapyGoals" datasource="#Application.DataSrc#">
				SELECT pAuths.Auth_ID
				FROM #Request.prefix_db_agency#.pAuths
				INNER JOIN #Request.prefix_db_agency#.pAssessments pa
					ON pa.Assmt_ID = pAuths.Assmt_ID
					AND pa.status = 0
				INNER JOIN #Request.prefix_db_agency#.pAssessments cur
					ON cur.Admit_ID = pa.Admit_ID
					AND cur.status = 0
				WHERE cur.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#" cfsqltype="CF_SQL_INTEGER">
					AND pAuths.Status = 0
					AND IFNULL(pAuths.Visitfreq_Placeholder, 0) = 0
					AND pAuths.Skill IN ('OT','OTA','COTA')
				LIMIT 1
			</cfquery>
			<cfif getOTOrderedForTherapyGoals.recordcount EQ 0>
				<cfset includeGG0130OnPT = true />
			</cfif>
		</cfif>
		<cfset lookupUpdateList = '' />
		<cfif LEFT(arguments.certF26, 1) EQ '4'>
			<cfset lookupUpdateList = '4 - Recertification (follow-up) reassessment' />
			<cfset lookupUpdateList = ListAppend(lookupUpdateList, '1 - Start of care - further visits planned') />
		<cfelse>
			<cfset lookupUpdateList = '1 - Start of care - further visits planned' />
		</cfif>

		<cfloop list="#lookupUpdateList#" index="lookupUpdate">
			<cfquery name="getTherapyGoalRows" datasource="#Application.DataSrc#">
				SELECT
					p.Problem_ID,
					p.Description AS ProblemDescription,
					p.Answer AS ProblemAnswer,
					p.Severity AS ProblemSeverity,
					p.Path_ID AS Pathway_ID,
					p.Item_ID AS Lookup_Item_ID,
					(
						SELECT t.Item_ID_Goal
						FROM #Request.prefix_db_lookup#.Assmt_Update_Therapy1 t
						WHERE t.Pathway_ID = p.Path_ID
						AND t.Source = <cfqueryparam value="#therapySource#" cfsqltype="CF_SQL_VARCHAR">
						AND t.`Update` = <cfqueryparam value="#lookupUpdate#" cfsqltype="CF_SQL_VARCHAR">
						AND (
							t.Problem LIKE <cfqueryparam value="#ggPrefix#%" cfsqltype="CF_SQL_VARCHAR">
							<cfif includeGG0130OnPT>
							OR t.Problem LIKE <cfqueryparam value="GG0130%" cfsqltype="CF_SQL_VARCHAR">
							</cfif>
						)
						AND (
							p.Description = t.Problem
							OR p.Item_ID = t.Item_ID
						)
						ORDER BY (p.Description = t.Problem) DESC, t.ID ASC
						LIMIT 1
					) AS Item_ID_Goal
				FROM #Request.prefix_db_agency#.pProblem p
				WHERE p.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#" cfsqltype="CF_SQL_INTEGER">
				AND p.Status = <cfqueryparam value="0" cfsqltype="CF_SQL_INTEGER">
				AND p.Skill = <cfqueryparam value="#arguments.Skill#" cfsqltype="CF_SQL_VARCHAR">
				AND p.M0_No NOT LIKE <cfqueryparam value="M102%" cfsqltype="CF_SQL_VARCHAR">
				AND (
					p.Description LIKE <cfqueryparam value="#ggPrefix#%" cfsqltype="CF_SQL_VARCHAR">
					<cfif includeGG0130OnPT>
					OR p.Description LIKE <cfqueryparam value="GG0130%" cfsqltype="CF_SQL_VARCHAR">
					</cfif>
					OR p.M0_No = <cfqueryparam value="ADL" cfsqltype="CF_SQL_VARCHAR">
				)
				ORDER BY p.Problem_ID DESC
			</cfquery>
			<cfif getTherapyGoalRows.recordcount GT 0>
				<cfbreak />
			</cfif>
		</cfloop>

		<cfif NOT IsDefined('getTherapyGoalRows') OR getTherapyGoalRows.recordcount EQ 0>
			<cfreturn />
		</cfif>

		<cfset therapyGoalActivityKeys = "" />

		<cfloop query="getTherapyGoalRows">
			<!--- Match problem list text (e.g. GG0130B1 - Oral Hygiene - 05. Setup or clean-up assistance) --->
			<cfset goalDesc = Trim(getTherapyGoalRows.ProblemDescription) />
			<cfif Len(goalDesc) EQ 0>
				<cfset goalDesc = Trim(getTherapyGoalRows.ProblemDescription) />
			</cfif>
			<cfset hasSeverityInDesc = (REFind(" - \d{2}\. .+$", goalDesc, 1, true).pos[1] GT 0) />
			<cfif NOT hasSeverityInDesc>
				<cfset goalSuffix = "" />
				<cfif Len(Trim(getTherapyGoalRows.ProblemAnswer)) GT 0 AND Find('.', Trim(getTherapyGoalRows.ProblemAnswer))>
					<cfset goalSuffix = Trim(getTherapyGoalRows.ProblemAnswer) />
				<cfelseif Len(Trim(getTherapyGoalRows.ProblemSeverity)) GT 0>
					<cfset goalSuffix = Trim(getTherapyGoalRows.ProblemSeverity) />
				</cfif>
				<cfif Len(goalSuffix) GT 0>
					<cfif Right(goalDesc, Len(goalSuffix)) NEQ goalSuffix AND FindNoCase(' - ' & goalSuffix, goalDesc) EQ 0>
						<cfset goalDesc = goalDesc & ' - ' & goalSuffix />
					</cfif>
				</cfif>
			</cfif>
			<!--- Goals: drop OASIS GG item prefix (problems keep GG0130B1 - …) --->
			<cfset goalDesc = Trim(REReplace(goalDesc, "^GG0\d{3}[A-Za-z0-9]*\s*-\s*", "", "one")) />

			<!--- One goal per ADL activity (e.g. Oral Hygiene), not per severity row --->
			<cfset goalActivityKey = goalDesc />
			<cfset goalActivityMatch = REFind("^(.+?)\s-\s\d{2}\.", goalDesc, 1, true) />
			<cfif goalActivityMatch.pos[1] GT 0>
				<cfset goalActivityKey = Trim(Mid(goalDesc, goalActivityMatch.pos[2], goalActivityMatch.len[2])) />
			</cfif>
			<cfset goalActivityKey = LCase(Trim(goalActivityKey)) />
			<cfif Len(goalActivityKey) EQ 0>
				<cfcontinue />
			</cfif>
			<cfif ListFind(therapyGoalActivityKeys, goalActivityKey) GT 0>
				<cfcontinue />
			</cfif>

			<cfquery name="getExistingTherapyGoalByActivity" datasource="#Application.DataSrc#">
				SELECT AutoCareplan_ID, Careplan_ID, Status, Description
				FROM #Request.prefix_db_agency#.pCareplan
				WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#" cfsqltype="CF_SQL_INTEGER">
				AND Skill = <cfqueryparam value="#arguments.Skill#" cfsqltype="CF_SQL_VARCHAR">
				AND Type = <cfqueryparam value="goal" cfsqltype="CF_SQL_VARCHAR">
				AND Status = <cfqueryparam value="0" cfsqltype="CF_SQL_INTEGER">
				AND (
					LCase(Trim(SUBSTRING_INDEX(Description, '-', 1))) = <cfqueryparam value="#goalActivityKey#" cfsqltype="CF_SQL_VARCHAR">
					OR Description LIKE <cfqueryparam value="#goalActivityKey# - %" cfsqltype="CF_SQL_VARCHAR">
				)
			</cfquery>
			<cfif getExistingTherapyGoalByActivity.recordcount GT 0>
				<cfset therapyGoalActivityKeys = ListAppend(therapyGoalActivityKeys, goalActivityKey) />
				<cfcontinue />
			</cfif>

			<cfquery name="getExistingTherapyGoal" datasource="#Application.DataSrc#">
				SELECT AutoCareplan_ID, Careplan_ID, Status
				FROM #Request.prefix_db_agency#.pCareplan
				WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#" cfsqltype="CF_SQL_INTEGER">
				AND Skill = <cfqueryparam value="#arguments.Skill#" cfsqltype="CF_SQL_VARCHAR">
				AND Type = <cfqueryparam value="goal" cfsqltype="CF_SQL_VARCHAR">
				AND Description = <cfqueryparam value="#goalDesc#" cfsqltype="CF_SQL_VARCHAR">
				AND Status IN (<cfqueryparam value="0,1,3" cfsqltype="CF_SQL_INTEGER" list="yes">)
			</cfquery>
			<cfif getExistingTherapyGoal.recordcount GT 0>
				<cfquery name="getActiveTherapyGoal" dbtype="query">
					SELECT * FROM getExistingTherapyGoal WHERE Status = 0
				</cfquery>
				<cfif getActiveTherapyGoal.recordcount GT 0>
					<cfcontinue />
				</cfif>
			</cfif>

			<cfset goalItemId = 0 />
			<cfset goalOrderId = 0 />
			<cfif Val(getTherapyGoalRows.Item_ID_Goal) GT 0>
				<cfset goalItemId = Val(getTherapyGoalRows.Item_ID_Goal) />
			</cfif>
			<cfif goalItemId EQ 0 AND Val(getTherapyGoalRows.Pathway_ID) GT 0>
				<cfquery name="getPathwayGoalItem" datasource="#Application.DataSrc#">
					SELECT Item_ID, Order_ID
					FROM #Request.prefix_db_lookup#.pPathway
					WHERE Pathway_ID = <cfqueryparam value="#Val(getTherapyGoalRows.Pathway_ID)#" cfsqltype="CF_SQL_INTEGER">
					AND Type = <cfqueryparam value="goal" cfsqltype="CF_SQL_VARCHAR">
					LIMIT 1
				</cfquery>
				<cfif getPathwayGoalItem.recordcount GT 0>
					<cfset goalItemId = Val(getPathwayGoalItem.Item_ID) />
					<cfset goalOrderId = Val(getPathwayGoalItem.Order_ID) />
				</cfif>
			</cfif>

			<cfset pIncrmt1 = 4 />

			<cfset pCareplan_ID = 0 />
			<cfif getExistingTherapyGoal.recordcount GT 0>
				<cfset pCareplan_ID = Val(getExistingTherapyGoal.Careplan_ID) />
			</cfif>
			<cfif pCareplan_ID EQ 0>
				<cfquery name="getNextCareplanId" datasource="#Application.DataSrc#">
					SELECT IFNULL(MAX(Careplan_ID), 0) + 1 AS pCareplan_ID
					FROM #Request.prefix_db_agency#.pCareplan
				</cfquery>
				<cfset pCareplan_ID = Val(getNextCareplanId.pCareplan_ID) />
			</cfif>

			<cfquery name="insertTherapyEvalGoal" datasource="#Application.DataSrc#">
				INSERT INTO #Request.prefix_db_agency#.pCareplan
				(
					Careplan_ID, Assmt_ID, Incrmt1, Item_ID, Order_ID, Goal_ID, Status, Skill, Type, Description, Date_Target,
					Date_Create, Created_by, Date_Change, Change_by
				)
				VALUES
				(
					<cfqueryparam value="#pCareplan_ID#" cfsqltype="CF_SQL_INTEGER">,
					<cfqueryparam value="#arguments.Assmt_ID#" cfsqltype="CF_SQL_INTEGER">,
					<cfqueryparam value="#pIncrmt1#" cfsqltype="CF_SQL_INTEGER">,
					<cfqueryparam value="#goalItemId#" cfsqltype="CF_SQL_INTEGER">,
					<cfqueryparam value="#goalOrderId#" cfsqltype="CF_SQL_INTEGER">,
					<cfqueryparam value="0" cfsqltype="CF_SQL_INTEGER">,
					<cfqueryparam value="0" cfsqltype="CF_SQL_INTEGER">,
					<cfqueryparam value="#arguments.Skill#" cfsqltype="CF_SQL_VARCHAR">,
					<cfqueryparam value="goal" cfsqltype="CF_SQL_VARCHAR">,
					<cfqueryparam value="#goalDesc#" cfsqltype="CF_SQL_VARCHAR">,
					<cfqueryparam value="#arguments.certF178#" cfsqltype="CF_SQL_DATE">,
					<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
					<cfqueryparam value="#session.employeeid#" cfsqltype="CF_SQL_INTEGER">,
					<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
					<cfqueryparam value="#session.employeeid#" cfsqltype="CF_SQL_INTEGER">
				)
			</cfquery>
			<cfset therapyGoalActivityKeys = ListAppend(therapyGoalActivityKeys, goalActivityKey) />
		</cfloop>
	</cffunction>


	<cffunction name="insertautocareplans"  access="remote" output="Yes"  returnformat="plain" returntype="string">   
		<cfargument name="problem_id" required="yes" default="0">
		<cfargument name="Skill" required="yes" default="SN">
		<cfargument name="Assmt_ID" required="yes" default="0">
		<cfargument name="diagnosis" required="no" default="0">

	    <cfif arguments.problem_id  neq 0  >

	    	<cfquery name="get485" datasource="#Application.DataSrc#">
			    SELECT * FROM #Request.prefix_db_agency#.pCMS4857
			    WHERE  Assmt_ID IN (<cfqueryparam value = "#arguments.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER" list="yes">)
			    AND Status = 0
			    AND Form_Type like '%Form 485%'
			</cfquery>
			<cfquery  name="getass" datasource="#Application.DataSrc#">
				SELECT * FROM #Request.prefix_db_agency#.pAssessments
				WHERE  status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
 				AND  Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER" >
 			</cfquery>
			
 			<cfquery name="getpgnotes" datasource="#Application.DataSrc#">
			        SELECT * FROM #Request.prefix_db_agency#.pProgress
			        WHERE  Assmt_ID IN (<cfqueryparam value = "#getass.Assmt_ID#" CFSQLType ="CF_SQL_INTEGER" list="yes">)
			        AND Status = 0 
			        AND Schedule_ID IN (SELECT Schedule_ID FROM #Request.prefix_db_agency#.pSchedules 
					WHERE  Assmt_ID = "#getass.Assmt_ID#" AND status = 0 AND Missed =0 AND Skill = '#arguments.Skill#')
			</cfquery>
		 
	    	 <cfif  (get485.recordcount EQ 0 OR LEFT(getass.F26,1) EQ '1') <!--- AND len(getass.F197) EQ '0' ---> AND getpgnotes.recordcount EQ 0 >
	    		<cfquery  name="update_Careplans" datasource="#Application.DataSrc#">
					UPDATE  #Request.prefix_db_agency#.pCareplan  
					SET Status =  2
					WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="cf_sql_varchar">
					AND Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar"> 
					AND status 	= <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">
					 AND Type IN (<cfqueryparam value="goal,procedure" list="yes"  cfsqltype="cf_sql_varchar">) 
					AND (Description like '%-%' OR Type ="procedure")
					AND pCareplan.Date_Create = pCareplan.Date_Change
					AND (Notes IS  NULL OR length(Notes) =0 )
					AND status = 0 AND Date_Resolve IS NULL
				</cfquery>	 				
			</cfif>  

	    	<!--- START UPDATE SOC with eval answers if SOC and Evaluation have different answers --->
	    	
 			<cfif LEFT(getass.F26,1) EQ 1 OR LEFT(getass.F26,1) EQ 4>
 				<cfquery  name="get_OASIS" datasource="#Application.DataSrc#">
				   SELECT   
				   		(SELECT pa.Assmt_ID FROM #Request.prefix_db_agency#.pAssessments pa
						 	WHERE pAssessments.Admit_ID =  pa.Admit_ID AND pa.status = 0 
						 	AND pa.F26 like 'PT Adult%'
						 	ORDER BY pa.Assmt_ID DESC LIMIT 1) AS PT,
					    (SELECT pa.Assmt_ID FROM #Request.prefix_db_agency#.pAssessments pa
						 	WHERE pAssessments.Admit_ID =  pa.Admit_ID AND pa.status = 0 
						 	AND pa.F26 like 'OT Adult%'
						 	ORDER BY pa.Assmt_ID DESC LIMIT 1) AS OT  
				 		FROM #Request.prefix_db_agency#.pAssessments  
			  			WHERE Admit_ID = <cfqueryparam value = "#getass.Admit_ID#" CFSQLType ="cf_sql_integer">
			   			AND status = <cfqueryparam value="0" cfsqltype="cf_sql_integer">
				</cfquery>
				<cfif len(get_OASIS.OT) gt 0>
					<cfquery  name="GetEvaulations" datasource="#Application.DataSrc#">
						SELECT * FROM  #Request.prefix_db_agency#.pAssessments
						WHERE Assmt_ID = #get_OASIS.OT# AND status = 0   
					</cfquery>
				<cfelseif len(get_OASIS.PT) gt 0>
					<cfquery  name="GetEvaulations" datasource="#Application.DataSrc#">
						SELECT * FROM  #Request.prefix_db_agency#.pAssessments
						WHERE Assmt_ID = #get_OASIS.PT# AND status = 0   
					</cfquery>
				</cfif>
				<!--- <cfif len(get_OASIS.OT) gt 0 OR len(get_OASIS.PT) gt 0>
		 			<cfif getass.F74 NEQ GetEvaulations.F103 OR getass.F75 NEQ GetEvaulations.F105 OR  getass.F76 NEQ GetEvaulations.F107 OR getass.F77 NEQ GetEvaulations.F109 OR  getass.F78 NEQ GetEvaulations.F111 OR getass.F79 NEQ GetEvaulations.F113 OR getass.F80 NEQ GetEvaulations.F115 OR    getass.F81 NEQ GetEvaulations.F117 OR  getass.F156 NEQ GetEvaulations.F119 >
		 				<cfset PT_complete =  0 />
		 				<cfset OT_complete =  0 />
			 			<cfinclude template = "/patientadmin_new/patient/OASIS_rules.cfm" />
			 			<cfif PT_complete GT 0 OR OT_complete GT 0 >
			 				<cfquery  name="updateOT_PTcareplans" datasource="#Application.DataSrc#">
								UPDATE  #Request.prefix_db_agency#.pCareplan 
								 SET status =  2
								WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="cf_sql_integer">
								<cfif  PT_complete GT 0 AND OT_complete GT 0>
									AND Skill IN  (<cfqueryparam value="PT,OT"  cfsqltype="cf_sql_varchar" list="yes">)
								<cfelseif PT_complete GT 0>
									AND Skill = <cfqueryparam value="PT"  cfsqltype="cf_sql_varchar">
								<cfelseif OT_complete GT 0>
									AND Skill  = <cfqueryparam value="OT"  cfsqltype="cf_sql_varchar">
								</cfif>
								AND Type IN ('goal')  AND Item_ID >= 502 AND  Item_ID <=1046 AND Item_ID NOT IN (1006,992,998,1002,584,994,1004,936)
								AND Status = <cfqueryparam value="0"  cfsqltype="cf_sql_integer">
							</cfquery> 
			 			</cfif>
			 		</cfif>
		 		</cfif>--->
 			</cfif>
 			<!--- END UPDATE SOC with eval answers if SOC and Evaluation have different answers --->
 			

      		<cfquery  name="getDX" datasource="#Application.DataSrc#">
				SELECT pProblem.* FROM #Request.prefix_db_agency#.pProblem 
				WHERE  pProblem.status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
				AND (M0_No like 'M1021%' OR M0_No like 'M1023%')
				<cfif FindNoCase("Hospice Admission", getass.F26)>
				AND (pProblem.hospice = 1 OR pProblem.hospice IS NULL)
				</cfif>
				AND pProblem.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER" >
				AND pProblem.Status = <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER" >
				AND pProblem.Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="CF_SQL_VARCHAR" >
				AND LEFT(pProblem.Severity,1) > '1'
				ORDER BY RIGHT(M0_No, 1) ASC
			</cfquery>
			<cfset Request.dxpath_ids = ValueList(getDX.Path_ID) />

			<cfset Request.questions_problemids =  "" />
			<cfif left(getass.F26,1) EQ '1'>
				<!--- #10641: ensure PATTII lookup table names exist (CFC may run outside OnRequestStart) --->
				<cfif NOT structKeyExists(Request, "assessment_answers_lookup") OR NOT len(trim(Request.assessment_answers_lookup))>
					<cfinclude template="../Application_assessment_lookup_PATTII.cfm" />
				</cfif>
				<cfquery  name="getquestionsproblems" datasource="#Application.DataSrc#">
					SELECT pProblem.* FROM  #Request.prefix_db_agency#.pProblem
					LEFT OUTER JOIN #Request.prefix_db_lookup#.#Request.assessment_answers_lookup# assessment_answers_lookup ON assessment_answers_lookup.Item_ID = pProblem.Item_ID
					AND assessment_answers_lookup.question_id = pProblem.ques_id 
					WHERE  Assmt_ID =  <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER" >
					AND   status = <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER" >
					GROUP BY Problem_ID 
				</cfquery>
				<cfset Request.questions_problemids = ValueList(getquestionsproblems.Problem_ID) /> 
			</cfif>

			<cfquery  name="getorphans" datasource="#Application.DataSrc#">
			      SELECT p.* FROM #Request.prefix_db_agency#.pProblem p
			      WHERE p.status = 0      
			      AND p.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
			      AND p.Skill IN (<cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar" list="yes">)
			      AND p.Item_ID < 1100
			      AND p.Item_ID  NOT IN (SELECT Item_ID FROM #Request.prefix_db_lookup#.pPathway 
			      WHERE  Pathway_ID IN ('#Request.dxpath_ids#') 
			      AND Type= 'symptom' AND  Agency_ID IS NULL)
			      <cfif len(Request.questions_problemids) gt 0 >
			    	  AND p.Problem_ID NOT IN (#Request.questions_problemids#)
			       </cfif>
			      AND p.M0_No NOT like 'M102%' 
			      GROUP BY p.Problem_ID
   			</cfquery>
   			<cfset Request.Orphans_problemids = ValueList(getorphans.Problem_ID) />
   			<cfquery  name="getprobs" datasource="#Application.DataSrc#">
				SELECT pProblem.* FROM #Request.prefix_db_agency#.pProblem 
				WHERE  pProblem.status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
				<!---AND pProblem.AutoProblem_ID IN (<cfqueryparam value="#arguments.problem_id#"  cfsqltype="CF_SQL_INTEGER" list="yes">)
			     <cfif arguments.diagnosis  neq 0>
					AND (M0_No like 'M1021%' OR M0_No like 'M1023%')
				</cfif> --->
				<!--- <cfif getorphans.recordcount gt 0 AND  arguments.Skill NEQ 'HHA' AND  arguments.Skill NEQ 'ST'>
					AND  pProblem.Problem_ID NOT IN (#Request.Orphans_problemids#) 
				</cfif>--->
				<cfif len(Request.questions_problemids) gt 0 >
					<cfif arguments.Skill EQ 'PT' OR arguments.Skill EQ 'OT'>
			    	  AND (
			    	  	pProblem.Problem_ID IN (#Request.questions_problemids#)
			    	  	OR (
			    	  		pProblem.Description LIKE 'GG%'
			    	  		AND pProblem.M0_No NOT LIKE 'M102%'
			    	  	)
			    	  )
					<cfelse>
			    	  AND pProblem.Problem_ID IN (#Request.questions_problemids#)
					</cfif>
			    </cfif>
				AND pProblem.M0_No NOT like 'M1021%' AND  pProblem.M0_No NOT like 'M1023%'
				AND pProblem.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER" >
				AND pProblem.Status = <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER" >
				AND pProblem.Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="CF_SQL_VARCHAR" >
				ORDER BY RIGHT(M0_No, 1) ASC
			</cfquery>
			<cfset diagspath_ids = ArrayNew(1) >
			<cfset primarydiagpathwayids = 0 >
			<cfset otherdiagpathwayids = 0 >
			<cfset disablepathwayids = '' >
			<cfquery  name="getdisable_pathway"  dbtype="query">
				SELECT * FROM getDX
				WHERE  Assmt_ID IN (#arguments.Assmt_ID#)
				AND (M0_No like 'M1021%' OR M0_No like 'M1023%')
				AND (Careplan = 0 OR Severity < 2)
			</cfquery>
			<cfset disablepathwayids = ValueList(getdisable_pathway.Path_ID) />
			<cfif listlen(arguments.problem_id) gt 0 >
				<cfquery  name="getprimarydiagnosis"  dbtype="query">
					SELECT * FROM getDX
					WHERE AutoProblem_ID IN (#arguments.problem_id#)
					AND M0_No like 'M1021%'
					ORDER BY dx_order ASC
				</cfquery>
				<cfquery  name="getotherdiagnosis"  dbtype="query">
					SELECT * FROM getDX
					WHERE 
					 <!--- AutoProblem_ID IN (#arguments.problem_id#) --->
					 Assmt_ID IN (#arguments.Assmt_ID#)
					AND M0_No like 'M1023%'
					ORDER BY dx_order ASC
				</cfquery>
			
				<cfset primarydiagpathwayids = ValueList(getprimarydiagnosis.Path_ID) />
				<cfset otherdiagpathwayids = ValueList(getotherdiagnosis.Path_ID) />
				<cfloop query="getprimarydiagnosis">
					<cfset diagspath_ids.push(Path_ID) />
				</cfloop>
				<cfloop query="getotherdiagnosis">
					<cfset diagspath_ids.push(Path_ID) />
				</cfloop>

			</cfif>

				 
				<!--- 
				<cfif CGI.REMOTE_ADDR EQ '103.143.7.161'  >
				     <cfdump var="#otherdiagpathwayids#">
				      <cfdump var="#getprobs#"> 
				</cfif>
				<cfif CGI.REMOTE_ADDR EQ '103.143.7.161'>
				     <cfdump var="#getprobs#"><cfabort>
				</cfif>--->  


			<cfset Assmt_ID = arguments.Assmt_ID />
		 	<cfset All_AutoCareplan_IDs = "" />
		 	<cfset AutoCareplan_IDs = "" />
		 	<cfset problemspathwayids = ValueList(getprobs.Path_ID) />
		 	<cfset pathwayids = ValueList(getprobs.Path_ID) />
		 	<cfset pathwayids = ListAppend(pathwayids,primarydiagpathwayids) />
		 	<cfset pathwayids = ListAppend(pathwayids,otherdiagpathwayids) />
		 	<cfset pathwayids = ListAppend(pathwayids,28) />
		 	<!--- START INSERT pCareplan_Meds  --->
		 	<cfquery  name="getmeds" datasource="#Application.DataSrc#">
				<!--- SELECT *,n.Med_ID AS MedID FROM  #Request.prefix_db_agency#.pPtmeds m
				JOIN  #Request.prefix_db_lookup#.Meds_New n ON m.Drug_ID = n.Trade_Num
				JOIN  #Request.prefix_db_lookup#.meds_pathway_lookup l ON n.Med_ID = l.Med_ID
				WHERE  m.Patient_ID = <cfqueryparam value="#session.cs.patientid#"  cfsqltype="CF_SQL_INTEGER">
				AND m.status = 0 --->
				SELECT *,n.Med_ID AS MedID from #Request.prefix_db_agency#.pPtmeds m, #Request.prefix_db_agency#.pProblem p, #Request.prefix_db_lookup#.meds_pathway_lookup l, #Request.prefix_db_lookup#.Meds_New n
				where m.Drug_ID = n.Trade_Num
				and n.Med_ID = l.Med_ID
				and l.Path_ID = p.Path_ID
				and m.Patient_ID = <cfqueryparam value="#session.cs.patientid#"  cfsqltype="CF_SQL_INTEGER" >
				and p.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER" >
				and m.status = 0
				and p.status = 0
				GROUP BY PtMeds_ID 

			</cfquery>


			 	<!---<cfquery  name="getcareplanmeds" datasource="#Application.DataSrc#">
				SELECT * FROM  #Request.prefix_db_agency#.pCareplan_Meds
				WHERE  Patient_ID = <cfqueryparam value="#session.cs.patientid#"  cfsqltype="CF_SQL_INTEGER">
				AND status = 0
			</cfquery>
			<cfloop query="getprobs">
				<cfloop query="getmeds">
					<cfif getmeds.Path_ID EQ getprobs.Path_ID>
					    <cfset Problem_ID = #getprobs.Problem_ID# />
					    <cfset Pt_Meds_ID = #getmeds.PtMeds_ID# />
						<cfquery  name="getcaremeds" dbtype="query">
							SELECT * FROM  getcareplanmeds
							WHERE  Patient_ID = <cfqueryparam value="#session.cs.patientid#"  cfsqltype="CF_SQL_INTEGER">
							AND Problem_ID = <cfqueryparam value="#Problem_ID#"  cfsqltype="CF_SQL_INTEGER">
							AND status = <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER">
							AND Pt_Meds_ID = <cfqueryparam value="#Pt_Meds_ID#"  cfsqltype="CF_SQL_INTEGER">
				        </cfquery>
				        <cfif getcaremeds.recordcount EQ 0 >
					        <cfquery  name="InsertpCareplan_Meds" datasource="#Application.DataSrc#">
					        	INSERT INTO #Request.prefix_db_agency#.pCareplan_Meds
									(
										Patient_ID, Problem_ID, Pt_Meds_ID, Med_ID, Description, Drug_Name
									) 
									VALUES
									(							
										<cfqueryparam value = "#session.cs.patientid#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#Problem_ID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#Pt_Meds_ID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#MedID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value="#Drug_Name#"  cfsqltype="cf_sql_varchar">,
										<cfqueryparam value="#Drug_Name#"  cfsqltype="cf_sql_varchar">								
									)
					        </cfquery>
				        </cfif>
					</cfif>
			   </cfloop>			   
			</cfloop>
		  END INSERT pCareplan_Meds  --->


		  	<cfset resolved_goals = "" >		  	
		  	<cfquery  name="getoldassessment" datasource="#Application.DataSrc#">
                   SELECT *  FROM  #Request.prefix_db_agency#.pAssessments 
                   WHERE Patient_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#getass.Patient_ID#">
                   AND status = <cfqueryparam cfsqltype="cf_sql_integer" value="0">
                   AND Admit_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#getass.Admit_ID#">
                    AND LEFT(F26,1) IN ('1','4') 
                    <cfif getass.F176 neq ''>
                    	AND F178 <= <cfqueryparam value = "#getass.F178#" CFSQLType ="CF_SQL_DATE">
                    </cfif>
                   AND status = 0 
                   ORDER BY F178 DESC
            </cfquery>

            <cfif getoldassessment.recordCount GTE 2>
    			<cfset secondRow = getoldassessment.getRow(2)>
    			<cfset oldassementid  =  secondRow.Assmt_ID />
    		<cfelse>
    			<cfset oldassementid  =  getoldassessment.Assmt_ID />
    		</cfif>
	 		<cfquery name="pCareplan_list" datasource="#Application.DataSrc#">
				SELECT * FROM #Request.prefix_db_agency#.pCareplan 
				WHERE Status = <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">	
				AND Assmt_ID = "#oldassementid#" AND Type = 'goal'
				AND  Date_Resolve IS NOT NULL
				ORDER BY Careplan_ID ASC 
			</cfquery>
			<!--- <cfif pCareplan_list.recordcount gt 0 >
				<cfset resolved_goals = Valuelist(pCareplan_list.Item_ID) />
			</cfif>
		    <cfif CGI.REMOTE_ADDR EQ '103.143.7.161'>
			     <cfdump var="#pCareplan_list#">
			</cfif>  --->

			<!--- <cfif (arguments.Skill EQ 'PT' OR arguments.Skill EQ 'OT') AND (LEFT(getass.F26, 1) EQ '1' OR LEFT(getass.F26, 1) EQ '4')>
				<cfset insertTherapyEvalGoalsFromLookup(Assmt_ID, arguments.Skill, getass.F26, getass.F178) />
			</cfif> --->

		 	<!--- #10685: symptoms are identified problems and belong in pProblem (symp_insertion), never pCareplan.
		 	     Including symptom here dumped pPathway library symptoms when the assessment had no selected problems. --->
		 	<cfloop index="pathwaytype" list = "procedure,teach,primarydiag_goal,otherdig_goal,problem_goal,patient_goal,discharge_plan" delimiters = ",">  

		 		<cfif pathwaytype  EQ 'primarydiag_goal'>
		 			<cfset Request.pathwayids = #trim(primarydiagpathwayids)# />
		 			<cfset pathwaytype =  'goal' />
		 		<cfelseif  pathwaytype  EQ 'otherdig_goal'>
		 			<cfset Request.pathwayids = #trim(otherdiagpathwayids)# />
		 			<cfset pathwaytype =  'goal' />
		 		<cfelseif  pathwaytype  EQ 'problem_goal'>
		 			<cfset Request.pathwayids = #trim(problemspathwayids)# />
		 			<cfset pathwaytype =  'problem_goal' />
		 		<cfelse>
		 			<cfset Request.pathwayids = #trim(pathwayids)# />
		 			<cfset pathwaytype =  pathwaytype  />
		 		</cfif>


			 	<cfquery  name="getpPathway" datasource="#Application.DataSrc#">
					SELECT * FROM #Request.prefix_db_lookup#.pPathway 
					WHERE Type = <cfif pathwaytype EQ 'problem_goal'>"goal"<cfelse>"#pathwaytype#"</cfif>
					<cfif pathwaytype  EQ 'symptom'>
						AND (Pathway_ID IN (<cfqueryparam value="#trim(Request.pathwayids)#"  cfsqltype="CF_SQL_INTEGER" list="yes">)
						AND Header = 'Vital Signs' OR pPathway.Patient_ID  = #session.cs.patientid#)
					<cfelse>
						AND (Type_Order != '1' OR Type != 'symptom')
						AND (Pathway_ID IN (<cfqueryparam value="#trim(Request.pathwayids)#"  cfsqltype="CF_SQL_INTEGER" list="yes">) 
						OR ( pPathway.Patient_ID  = #session.cs.patientid# 
		    		 AND pPathway.Agency_ID = "#session.agencyid#"))
					</cfif>
					<cfif len(resolved_goals) gt 0 AND pathwaytype EQ 'goal'>
						AND pPathway.Item_ID NOT IN (#resolved_goals#)
					</cfif>
					<cfif pathwaytype EQ 'goal'>
						and (Severity NOT IN (0,1) OR Severity IS NULL)
						<!--- AND (Pathway_ID < 300 OR Pathway_ID > 433) --->
					</cfif>
					AND (<!---pPathway.Approved IS NULL OR ---> pPathway.Approved = 'Yes' OR ( pPathway.Patient_ID  = #session.cs.patientid# 
		    		 AND pPathway.Agency_ID = "#session.agencyid#"))
		    		 AND TRIM(SUBSTRING_INDEX(Description, '-', 1)) NOT IN (SELECT TRIM(SUBSTRING_INDEX(Description, '-', 1)) FROM #Request.prefix_db_agency#.pCareplan 
						WHERE   Assmt_ID = <cfqueryparam value="#Assmt_ID#"  cfsqltype="cf_sql_varchar">
						AND  status  < 2  AND Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
						AND Type =<cfif pathwaytype EQ 'problem_goal'>"goal"<cfelse>"#pathwaytype#"</cfif>)
					GROUP BY Description
                    ORDER BY Order_ID 
				</cfquery>
				<cfif pathwaytype EQ 'problem_goal'>
				  <cfset pathwaytype = 'goal'>
				</cfif>
				<!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161' AND pathwaytype EQ 'goal'  >
				     <cfdump var="#getpPathway#">
				     <cfdump var="#Request.pathwayids#"> 
				</cfif> --->
				
				<!--- <cfif pathwaytype EQ 'procedure'> --->
					<cfquery  name="getactivecareplans" datasource="#Application.DataSrc#">
						SELECT IFNULL(Careplan_ID,0) as pCareplan_ID, pCareplan.* FROM #Request.prefix_db_agency#.pCareplan 
						WHERE Assmt_ID = <cfqueryparam value="#Assmt_ID#"  cfsqltype="cf_sql_varchar">
						AND Type = <cfqueryparam value="#pathwaytype#"  cfsqltype="cf_sql_varchar">
						AND Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
						AND Status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
					</cfquery>
					<cfset careplanlists 	= ValueList(getactivecareplans.AutoCareplan_ID) />
					<cfif len(careplanlists) gt 0 >
						<cfset All_AutoCareplan_IDs = ListAppend(All_AutoCareplan_IDs,careplanlists,",") />
					</cfif>
				<!--- </cfif> --->

				<cfset problempath_ids = ArrayNew(1) >
				<cfif pathwaytype EQ 'goal'>
					<cfloop query="getpPathway" group="Pathway_ID">
						<cfif ArrayContains(diagspath_ids,Pathway_ID) EQ false >
							<cfset diagspath_ids.push(Pathway_ID) />
						</cfif>
					</cfloop>
				</cfif>
				<!---<cfif CGI.HTTP_X_FORWARDED_FOR EQ '3.217.216.133' AND  pathwaytype  EQ 'goal' >
				     <cfdump var="#problempath_ids#">
				     <cfdump var="#diagspath_ids#">
				     <cfdump var="#getpPathway#">
				</cfif>---> 

				<cfloop query="getpPathway">  

					<cfif getpPathway.Patient_ID GT 0 >
						<cfquery  name="getcareplans" datasource="#Application.DataSrc#">
							SELECT IFNULL(Careplan_ID,0) as pCareplan_ID, pCareplan.* FROM #Request.prefix_db_agency#.pCareplan 
							WHERE Assmt_ID = <cfqueryparam value="#Assmt_ID#"  cfsqltype="cf_sql_varchar">
							AND Type = <cfqueryparam value="#pathwaytype#"  cfsqltype="cf_sql_varchar">
							<!--- AND Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar"> --->
							AND Status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
							<cfif pathwaytype EQ 'goal' OR pathwaytype EQ 'procedure'>
								AND Item_ID = <cfqueryparam value="#trim(getpPathway.Item_ID)#"  cfsqltype="cf_sql_integer">
							<cfelse>
								AND Description = <cfqueryparam value="#trim(getpPathway.Description)#"  cfsqltype="cf_sql_varchar">
							</cfif>
						</cfquery>
						
					<cfelse>
						<cfif pathwaytype EQ 'goal' OR pathwaytype EQ 'procedure'>						
							<cfquery  name="getcareplans" datasource="#Application.DataSrc#">
								SELECT IFNULL(Careplan_ID,0) as pCareplan_ID, pCareplan.* FROM #Request.prefix_db_agency#.pCareplan 
								WHERE Assmt_ID = <cfqueryparam value="#Assmt_ID#"  cfsqltype="cf_sql_integer">
								AND Type = <cfqueryparam value="#pathwaytype#"  cfsqltype="cf_sql_varchar">
								AND Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
								<!--- AND Status < <cfqueryparam value="2"  cfsqltype="cf_sql_varchar"> --->
								AND Item_ID = <cfqueryparam value="#trim(getpPathway.Item_ID)#"  cfsqltype="cf_sql_integer">
								GROUP BY Careplan_ID 
								ORDER BY Status  ASC
							</cfquery>
							
						<cfelse>
							<cfset getcareplans = checkcareplan(#Assmt_ID#,#pathwaytype#,#arguments.Skill#,4,#trim(getpPathway.Description)#) />
							
						</cfif>
				   </cfif>
				    <cfset argumentassid = Assmt_ID /> 
				    <cfset pIncrmt1  = 0/>
				    <cfif (arguments.Skill EQ 'PT' OR arguments.Skill EQ 'OT') AND pathwaytype EQ 'goal' AND getpPathway.Description contains '- 0'>
				   		<!--- <cfset Incrmt1  = getincrement_value(#Assmt_ID#,#arguments.Skill#,#getpPathway.Pathway_ID#) /> --->
				   		<cfquery  name="getproblem" datasource="#Application.DataSrc#">
							SELECT pPathway.Incrmt1,pProblem.Problem_ID FROM #Request.prefix_db_agency#.pProblem
							JOIN   #Request.prefix_db_lookup#.pPathway ON pPathway.Pathway_ID = pProblem.Path_ID
							AND pPathway.Description =  CONCAT(pProblem.Description, ' - ', pProblem.Severity) 
							WHERE pProblem.Assmt_ID = <cfqueryparam value = "#Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">
							AND pProblem.status = <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">
							AND pProblem.Path_ID =  <cfqueryparam value = "#getpPathway.Pathway_ID#" CFSQLType ="CF_SQL_INTEGER">
							AND pProblem.Skill  = '#arguments.Skill#'
							AND pProblem.Description like 'GG%'
						</cfquery>
						<!--- Step 3: Calculate Result --->
						<cfif getproblem.recordCount GT 0>
							<cfset pIncrmt1 = 0>
							<cfset problemID = 0>
							<cfif IsDefined("getproblem.Incrmt1") AND getproblem.Incrmt1 NEQ "" AND IsNumeric(getproblem.Incrmt1) AND getproblem.Incrmt1 gt 0>
								<cfset pIncrmt1 = Val(getproblem.Incrmt1)>
							</cfif>
							<cfif IsDefined("getproblem.Problem_ID") AND getproblem.Problem_ID NEQ "" AND IsNumeric(getproblem.Problem_ID) AND getproblem.Problem_ID GT 0>
								<cfset problemID = Val(getproblem.Problem_ID)>
							</cfif>
							<!--- Only execute update if both values are valid --->
							<cfif pIncrmt1 GT 0 AND problemID GT 0>
								<cfquery  name="update_problem" datasource="#Application.DataSrc#">
									UPDATE  #Request.prefix_db_agency#.pProblem
										SET problem_Incrmt1 = <cfqueryparam value="#pIncrmt1#" cfsqltype="CF_SQL_INTEGER">
									WHERE Problem_ID = <cfqueryparam value="#problemID#" cfsqltype="CF_SQL_INTEGER">
									AND status = <cfqueryparam value="0" cfsqltype="CF_SQL_INTEGER">
								</cfquery>
							</cfif>
						</cfif>
				   	<cfelseif pathwaytype EQ 'goal'>
				   		<cfset pIncrmt1  = 4  />	
				   	</cfif>
					<cfif pIncrmt1 EQ ''>
						<cfset pIncrmt1  = 0  />	
					</cfif>
				   <!--- <cfset Incrmt1  = getpPathway.Pathway_ID/> 
				    <cfif CGI.REMOTE_ADDR EQ '103.143.7.161' AND  pathwaytype  EQ 'goal' >
						    Incrmt1 -  <cfdump var="#Incrmt1#">
						</cfif> ---> 
				   	
				   <cfset getass = getassessment(#Assmt_ID#) />
				   	
					<cfif getcareplans.recordcount gt 0 >
						<!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161' AND  pathwaytype  EQ 'goal' >
						     <cfdump var="#getcareplans#"> <cfabort>
						</cfif> --->
						<cfset pCareplan_ID =  #getcareplans.Careplan_ID# />
						<cfset AutoCareplan_ID = #getcareplans.AutoCareplan_ID# />
						<cfset pItem_ID = #getcareplans.Item_ID# />
						<cfset pOrder_ID = #getcareplans.Order_ID# />
						<cfset pGoal_ID = #getcareplans.Goal_ID# />
						<cfset Notes = #getcareplans.Notes# />
						<cfquery name="getcarestatus" dbtype="query">
					    	SELECT * FROM getcareplans 
					    	WHERE 
					    	<cfif pathwaytype EQ 'goal'>
					    		Status  IN (0,1,3)
					    	<cfelse>
					    		Status < <cfqueryparam value="2"  cfsqltype="cf_sql_varchar"> 
					    	</cfif>
					    </cfquery>
					  
					 <!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161' AND  pathwaytype  EQ 'goal' >
						     <cfdump var="#getcareplans#">
							 <cfdump var="#getcarestatus#">
							 <cfdump var="#getpPathway#"> <cfabort>
						</cfif> --->
						<cfif getcarestatus.recordcount EQ 0  >
							<!--- Keep the 485/487 order link of the retired row so re-created items are not flagged as needing a 487 --->
							<cfquery name="getpriorcmsorder" dbtype="query">
								SELECT MAX(CMSOrder_ID) AS CMSOrder_ID FROM getcareplans
							</cfquery>
							<cfset pCMSOrder_ID = Val(getpriorcmsorder.CMSOrder_ID) />
							<cfquery  name="pCareplan_insert" datasource="#Application.DataSrc#">
								INSERT INTO #Request.prefix_db_agency#.pCareplan
								(
									Careplan_ID, Assmt_ID,Incrmt1,
									 Item_ID, Order_ID, Goal_ID, CMSOrder_ID, Status, Skill, Type, Description,Date_Target, Notes, Date_Create, Created_by, Date_Change, Change_by
								) 
								VALUES
								(							
									<cfqueryparam value = "#pCareplan_ID#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "#Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "#pIncrmt1#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "#pItem_ID#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "#pOrder_ID#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "#pGoal_ID#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "#pCMSOrder_ID#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">,
									<cfqueryparam value="#pathwaytype#"  cfsqltype="cf_sql_varchar">,
									<cfqueryparam value="#getpPathway.Description#"  cfsqltype="cf_sql_varchar">,
									<cfqueryparam value = "#getass.F178#" CFSQLType ="CF_SQL_DATE">,
									<cfqueryparam value="#Notes#"  cfsqltype="cf_sql_varchar">,
									<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
									<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
									<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
								)
							</cfquery>
							<cfquery name="Last_Insert" datasource="#Application.DataSrc#">
								SELECT LAST_INSERT_ID() as AutoCareplan_ID
						    </cfquery>
						    <cfset AutoCareplan_ID = #Last_Insert.AutoCareplan_ID# />
						<cfelse>
						 	<cfset AutoCareplan_ID = #getcarestatus.AutoCareplan_ID# />
						</cfif>
					<cfelse> 
					 	<cfquery  name="getcare" datasource="#Application.DataSrc#">
							SELECT IFNULL(MAX(Careplan_ID),0)+1 As pCareplan_ID FROM #Request.prefix_db_agency#.pCareplan 
						</cfquery>
						<cfset pGoal_ID = 0 />
						<!--- <cfquery  name="getgoals" datasource="#Application.DataSrc#">
							SELECT IFNULL(MAX(Goal_ID),0)+1 As pGoal_ID 
							FROM #Request.prefix_db_agency#.pCareplan 
							WHERE Skill = "#arguments.Skill#"
							AND Assmt_ID = "#Assmt_ID#"
							AND status < 2
						</cfquery>
						<cfif pathwaytype  EQ 'goal'>
							<cfset pGoal_ID =  #getgoals.pGoal_ID# />
						</cfif> --->

						<cfif pathwaytype EQ 'goal' AND  ArrayContains(problempath_ids, getpPathway.Pathway_ID)>
							<cfset pGoal_ID = problempath_ids.find(getpPathway.Pathway_ID) /> 
						<cfelseif  pathwaytype EQ 'goal'>
							<cfset pGoal_ID = diagspath_ids.find(getpPathway.Pathway_ID) /> 
						</cfif>

						<!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161' AND pathwaytype  EQ 'goal'>
						   <cfoutput>
						   	 #Description# -  #pathwaytype# - #pGoal_ID# <br>
						   	</cfoutput>
						</cfif> --->
						
						<cfset pItem_ID = 0 />
						<cfset pOrder_ID = 0 />
						<cfset pCareplan_ID =  #getcare.pCareplan_ID# />
						<cfif getpPathway.Item_ID NEQ '' >
							<cfset pItem_ID = #getpPathway.Item_ID# />
						</cfif>
						<cfif getpPathway.Order_ID NEQ '' >
							<cfset pOrder_ID = #getpPathway.Order_ID# />
						</cfif>

						<cfquery  name="pCareplan_insert" datasource="#Application.DataSrc#">
							INSERT INTO #Request.prefix_db_agency#.pCareplan
							(
								Careplan_ID, Assmt_ID,Incrmt1,
								 Item_ID, Order_ID, Goal_ID, Status, Skill, Type, Description,Date_Target,  Date_Create, Created_by, Date_Change, Change_by
							) 
							VALUES
							(							
								<cfqueryparam value = "#pCareplan_ID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "#Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "#pIncrmt1#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "#pItem_ID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "#pOrder_ID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "#pGoal_ID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">,
								<cfqueryparam value="#pathwaytype#"  cfsqltype="cf_sql_varchar">,
								<cfqueryparam value="#getpPathway.Description#"  cfsqltype="cf_sql_varchar">,
								<cfqueryparam value = "#getass.F178#" CFSQLType ="CF_SQL_DATE">,
								<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
								<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,

								<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
							)
						</cfquery>

						<cfquery name="Last_Insert" datasource="#Application.DataSrc#">
							SELECT LAST_INSERT_ID() as AutoCareplan_ID
					    </cfquery>
					    <cfset AutoCareplan_ID = #Last_Insert.AutoCareplan_ID# />
					</cfif>
					<cfset AutoCareplan_IDs = ListAppend(AutoCareplan_IDs,#AutoCareplan_ID#,",") />
				</cfloop>
			</cfloop>

		
			<cfquery  name="getcareplanstandingorder" datasource="#Application.DataSrc#">
				SELECT * FROM #Request.prefix_db_agency#.pCareplan 
				WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="cf_sql_varchar">
				AND Type = 'standing_order'
				AND Skill = '#arguments.Skill#' 
				AND Status = 0 
			</cfquery>
			<cfif getcareplanstandingorder.recordcount EQ 0 >
				<cfquery  name="getstandingorder" datasource="#Application.DataSrc#">
					SELECT * FROM #Request.prefix_db_lookup#.pStanding_Orders 
					WHERE  Agency_ID = <cfqueryparam value="#Session.agencyid#"  cfsqltype="CF_SQL_INTEGER">
					AND Status = 0 
				</cfquery>
				<cfloop query="getstandingorder">   
				<cfset getcareplans = checkcareplan(#Assmt_ID#,'standing_order',#arguments.Skill#,4,#trim(getstandingorder.Description)#) />
				<!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161'><cfdump var="#getcareplans#"></cfif> --->
				<cfset getass = getassessment(#Assmt_ID#) />
					<cfif getcareplans.recordcount gt 0 >
						<cfset pCareplan_ID =  #getcareplans.Careplan_ID# />
						<cfset AutoCareplan_ID = #getcareplans.AutoCareplan_ID# />
						<cfset pItem_ID = #getcareplans.Item_ID# />
						<cfset pOrder_ID = #getcareplans.Order_ID# />
						<cfquery name="getcarestatus" dbtype="query">
								SELECT * FROM getcareplans WHERE Status  < 2
						</cfquery>
						<cfif getcarestatus.recordcount EQ 0 >
							<cfquery  name="pCareplan_insert" datasource="#Application.DataSrc#">
								INSERT INTO #Request.prefix_db_agency#.pCareplan
								(
									Careplan_ID, Assmt_ID, Item_ID, Order_ID, Status, Skill, Type, Description,Date_Target,  Date_Create, Created_by, Date_Change, Change_by
								) 
								VALUES
								(							
									<cfqueryparam value = "#pCareplan_ID#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "#Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "#pOrder_ID#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">,
									<cfqueryparam value="standing_order"  cfsqltype="cf_sql_varchar">,
									<cfqueryparam value="#getstandingorder.Description#"  cfsqltype="cf_sql_varchar">,
									<cfqueryparam value = "#getass.F178#" CFSQLType ="CF_SQL_DATE">,
									<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
									<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
									<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
								)
							</cfquery>
							<cfquery name="Last_Insert" datasource="#Application.DataSrc#">
								SELECT LAST_INSERT_ID() as AutoCareplan_ID
							</cfquery>
							<cfset AutoCareplan_ID = #Last_Insert.AutoCareplan_ID# />
						</cfif>
					<cfelse> 
						<cfquery  name="getpPathway" datasource="#Application.DataSrc#">
							SELECT * FROM #Request.prefix_db_lookup#.pPathway 
							WHERE Pathway_ID IN (<cfqueryparam value="#trim(pathwayids)#"  cfsqltype="CF_SQL_INTEGER" list="yes">)
							AND Type = <cfqueryparam value="#pathwaytype#"  cfsqltype="cf_sql_varchar">
							AND (Approved IS NULL OR Approved = 'Yes')
							GROUP BY Description 
							ORDER BY Order_ID 
						</cfquery>
						<cfset AutoCareplan_ID = 0 />
						<cfif getpPathway.recordcount gt 0 >
							<cfquery  name="getcare" datasource="#Application.DataSrc#">
								SELECT IFNULL(MAX(Careplan_ID),0)+1 As pCareplan_ID FROM #Request.prefix_db_agency#.pCareplan 
							</cfquery>
							<cfset pCareplan_ID =  #getcare.pCareplan_ID# />
							<cfset pItem_ID = #getpPathway.Item_ID# />
							<cfset pOrder_ID = #getpPathway.Order_ID# />
							<cfquery  name="pCareplan_insert" datasource="#Application.DataSrc#">
								INSERT INTO #Request.prefix_db_agency#.pCareplan
								(
									Careplan_ID, Assmt_ID, Item_ID, Order_ID, Status, Skill, Type, Description,Date_Target,  Date_Create, Created_by, Date_Change, Change_by
								) 
								VALUES
								(							
									<cfqueryparam value = "#pCareplan_ID#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "#Assmt_ID#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "#pOrder_ID#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">,
									<cfqueryparam value="standing_order"  cfsqltype="cf_sql_varchar">,
									<cfqueryparam value="#getstandingorder.Description#"  cfsqltype="cf_sql_varchar">,
									<cfqueryparam value = "#getass.F178#" CFSQLType ="CF_SQL_DATE">,
									<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
									<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,
									<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
									<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
								)
							</cfquery>

							<cfquery name="Last_Insert" datasource="#Application.DataSrc#">
								SELECT LAST_INSERT_ID() as AutoCareplan_ID
							</cfquery>
							<cfset AutoCareplan_ID = #Last_Insert.AutoCareplan_ID# />
						</cfif>
					</cfif>
					<cfset AutoCareplan_IDs = ListAppend(AutoCareplan_IDs,#AutoCareplan_ID#,",") />
				</cfloop>
			</cfif>
			<!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161'><cfabort></cfif> 
			<cfif AutoCareplan_IDs neq "">
				<cfquery  name="updatepCareplan" datasource="#Application.DataSrc#">
				    UPDATE #Request.prefix_db_agency#.pCareplan
				    	SET status 		= <cfqueryparam value = "2" CFSQLType ="CF_SQL_INTEGER">,
						Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
						Change_by	= <cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">
						WHERE Assmt_ID = <cfqueryparam value="#Assmt_ID#"  cfsqltype="cf_sql_varchar">
						AND Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
						AND AutoCareplan_ID NOT IN  (<cfqueryparam CFSQLType="CF_SQL_INTEGER"  value="#AutoCareplan_IDs#"  list="yes" >) 
						AND status = 0
				</cfquery>
			</cfif> --->

			<!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161'><cfdump var="#disablepathwayids#"><cfabort></cfif> --->

			<cfquery  name="update_careplans" datasource="#Application.DataSrc#">
				UPDATE  #Request.prefix_db_agency#.pCareplan pc,  #Request.prefix_db_agency#.pVital_Param vp
				SET  pc.Param_Lo = vp.Value_Low,
				pc.Param_Hi =  vp.Value_High
				WHERE pc.Assmt_ID = <cfqueryparam value="#Assmt_ID#"  cfsqltype="cf_sql_varchar">
				AND pc.Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar"> 
				AND pc.status 	= <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">
				AND pc.Type = <cfqueryparam value="symptom"  cfsqltype="cf_sql_varchar"> 
				AND pc.Item_ID = vp.Item_ID 
			</cfquery>

			<cfif len(disablepathwayids) gt 0>
				<cfquery  name="update_Careplans" datasource="#Application.DataSrc#">
					UPDATE  #Request.prefix_db_agency#.pCareplan  
					SET Status =  1
					WHERE Assmt_ID = <cfqueryparam value="#Assmt_ID#"  cfsqltype="cf_sql_varchar">
					AND Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar"> 
					AND status 	= <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">
					AND Type = <cfqueryparam value="goal"  cfsqltype="cf_sql_varchar"> 
					AND Item_ID   IN (SELECT Item_ID FROM #Request.prefix_db_lookup#.pPathway
							WHERE Pathway_ID IN (#disablepathwayids#)  AND Type = 'goal'
							)
					AND status = 0
				</cfquery>				
				
			</cfif>
			<cfquery  name="update_pCareplan" datasource="#Application.DataSrc#">
					UPDATE  #Request.prefix_db_agency#.pCareplan  
					SET Status =  0
					WHERE Assmt_ID = <cfqueryparam value="#Assmt_ID#"  cfsqltype="cf_sql_varchar">
					AND Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar"> 
					AND status 	= <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">
					AND Type = <cfqueryparam value="goal"  cfsqltype="cf_sql_varchar"> 
					<cfif len(disablepathwayids) gt 0 >
						AND Item_ID  NOT IN (SELECT Item_ID FROM #Request.prefix_db_lookup#.pPathway
								WHERE Pathway_ID IN (#disablepathwayids#)  AND Type = 'goal'
								)
					</cfif>
					AND status = 1
			</cfquery>
			<!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161'><cfdump var="#disablepathwayids#"> <cfabort></cfif> --->

			<cfscript>
		          request.ass = CreateObject("component","components.general.assessments").init();
		          getgoalsuccess = request.ass.updategoals_visit(#arguments.Assmt_ID#);
		    </cfscript>

			<!--- #9925 - Create physician-ordered wound care procedures for each wound --->
			<cfquery name="getwounds" datasource="#Application.DataSrc#">
				SELECT * FROM #Request.prefix_db_agency#.pProblem  
				WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#" cfsqltype="CF_SQL_INTEGER"> 
				AND status = 0 
				AND Skill = <cfqueryparam value="#arguments.Skill#" cfsqltype="cf_sql_varchar">
				AND M0_No IN ('wound','SK')
				AND Description LIKE '##%'
				AND Description IS NOT NULL
				AND Description <> ''
				ORDER BY AutoProblem_ID ASC
			</cfquery>
			
			<cfif getwounds.recordcount gt 0>
				<cfloop query="getwounds">
					<cfset wound_care_description = "physician-ordered wound care: " & Trim(getwounds.Description) />
					
					<!--- Check if this wound care plan already exists --->
					<cfquery name="checkexistingwoundcare" datasource="#Application.DataSrc#">
						SELECT * FROM #Request.prefix_db_agency#.pCareplan 
						WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#" cfsqltype="CF_SQL_INTEGER">
						AND Skill = <cfqueryparam value="#arguments.Skill#" cfsqltype="cf_sql_varchar">
						AND Type = <cfqueryparam value="procedure" cfsqltype="cf_sql_varchar">
						AND Description = <cfqueryparam value="#wound_care_description#" cfsqltype="cf_sql_varchar">
						AND Status = 0
					</cfquery>
					
					<cfif checkexistingwoundcare.recordcount EQ 0>
						<!--- Get next Careplan_ID --->
						<cfquery name="getcare" datasource="#Application.DataSrc#">
							SELECT IFNULL(MAX(Careplan_ID),0)+1 As pCareplan_ID FROM #Request.prefix_db_agency#.pCareplan 
						</cfquery>
						<cfset pCareplan_ID = getcare.pCareplan_ID />
						<cfquery name="getpriorwoundcmsorder" datasource="#Application.DataSrc#">
							SELECT IFNULL(MAX(CMSOrder_ID),0) AS CMSOrder_ID FROM #Request.prefix_db_agency#.pCareplan 
							WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#" cfsqltype="CF_SQL_INTEGER">
							AND Skill = <cfqueryparam value="#arguments.Skill#" cfsqltype="cf_sql_varchar">
							AND Type = <cfqueryparam value="procedure" cfsqltype="cf_sql_varchar">
							AND Description = <cfqueryparam value="#wound_care_description#" cfsqltype="cf_sql_varchar">
						</cfquery>
						
						<!--- Insert physician-ordered wound care procedure --->
						<cfquery name="insertwoundcare" datasource="#Application.DataSrc#">
							INSERT INTO #Request.prefix_db_agency#.pCareplan
							(
								Careplan_ID, Assmt_ID, Item_ID, Order_ID, CMSOrder_ID, Status, Skill, Type, Description, Date_Target, Date_Create, Created_by, Date_Change, Change_by
							) 
							VALUES
							(							
								<cfqueryparam value="#pCareplan_ID#" CFSQLType="CF_SQL_INTEGER">,
								<cfqueryparam value="#arguments.Assmt_ID#" CFSQLType="CF_SQL_INTEGER">,
								<cfqueryparam value="0" CFSQLType="CF_SQL_INTEGER">,
								<cfqueryparam value="0" CFSQLType="CF_SQL_INTEGER">,
								<cfqueryparam value="#getpriorwoundcmsorder.CMSOrder_ID#" CFSQLType="CF_SQL_INTEGER">,
								<cfqueryparam value="0" CFSQLType="CF_SQL_INTEGER">,
								<cfqueryparam value="#arguments.Skill#" cfsqltype="cf_sql_varchar">,
								<cfqueryparam value="procedure" cfsqltype="cf_sql_varchar">,
								<cfqueryparam value="#wound_care_description#" cfsqltype="cf_sql_varchar">,
								<cfqueryparam value="#getass.F178#" CFSQLType="CF_SQL_DATE">,
								<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
								<cfqueryparam value="#session.employeeid#" CFSQLType="CF_SQL_INTEGER">,
								<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
								<cfqueryparam value="#session.employeeid#" CFSQLType="CF_SQL_INTEGER">
							)
						</cfquery>
					</cfif>
				</cfloop>
			</cfif>
			<!--- End #9925 --->


			<cfset assenc_id   = encrypt(#Assmt_ID#,"54kczhzgHTj4a8n+SRZPyg==","AES","Hex") />
			<cfset insert_action= assenc_id />					
		<cfelse>
			<cfset insert_action="Failed" />	 	
		</cfif>
		<cfreturn insert_action />						
	</cffunction>
	<cffunction name="insertmedications"  access="remote" output="Yes"  returnformat="plain" returntype="string">   
		<cfargument name="problem_ids" required="yes" default="">
		<cfargument name="Patient_ID" required="yes" default="0">
				 	<!--- START INSERT pCareplan_Meds  --->
				<cfset pCareplan_MedsIDs = "" />
				<cfset meds_pathway_IDs = "" />
				<cfloop list="#arguments.problem_ids#" index="probs" delimiters=",">
					<cfset PtMedsID=GetToken(probs,1,':') />
					<cfset ProblemID=GetToken(probs,2,':') />
					<cfquery  name="getmeds" datasource="#Application.DataSrc#">
						SELECT *,IFNULL(n.Med_ID,0) AS MedID,IFNULL(n.Trade_Num,24000) AS Trade_Nums  FROM  #Request.prefix_db_agency#.pPtmeds m
						LEFT OUTER JOIN #Request.prefix_db_lookup#.Meds_New n ON m.Drug_ID = n.Trade_Num
						WHERE m.Patient_ID = <cfqueryparam value="#arguments.Patient_ID#"  cfsqltype="CF_SQL_INTEGER">
						AND   m.status < 2
						AND   m.PtMeds_ID IN (<cfqueryparam value="#PtMedsID#"  cfsqltype="CF_SQL_INTEGER" list="yes">)
					</cfquery>
					<cfquery  name="getcareplanmeds" datasource="#Application.DataSrc#">
						SELECT * FROM  #Request.prefix_db_agency#.pCareplan_Meds
						WHERE  Patient_ID = <cfqueryparam value="#arguments.Patient_ID#"  cfsqltype="CF_SQL_INTEGER">
						AND status = 0
					</cfquery> 
					<cfquery  name="getproblems" datasource="#Application.DataSrc#">
						SELECT * FROM  #Request.prefix_db_agency#.pProblem
						WHERE  status = 0
						AND Problem_ID IN (<cfqueryparam value="#ProblemID#"  cfsqltype="CF_SQL_INTEGER" list="yes">)
					</cfquery>

						<cfset Drug_Name = #getmeds.Drug_Name# />
					    <cfset MedID = #getmeds.MedID# />	
					    <cfset PtMeds_ID = #getmeds.PtMeds_ID# />						    
						<cfquery  name="getcaremeds" dbtype="query">
							SELECT * FROM  getcareplanmeds
							WHERE  Patient_ID = <cfqueryparam value="#arguments.Patient_ID#"  cfsqltype="CF_SQL_INTEGER">
							AND Problem_ID = <cfqueryparam value="#ProblemID#"  cfsqltype="CF_SQL_INTEGER">
							AND status   = <cfqueryparam value="2"  cfsqltype="CF_SQL_INTEGER">
							AND Pt_Meds_ID = <cfqueryparam value="#PtMedsID#"  cfsqltype="CF_SQL_INTEGER">
				        </cfquery>
				        <cfquery  name="getmedspathway" datasource="#Application.DataSrc#">
							SELECT * FROM  #Request.prefix_db_lookup#.meds_pathway_lookup
							WHERE  Patient_ID = <cfqueryparam value="#arguments.Patient_ID#"  cfsqltype="CF_SQL_INTEGER">
							AND Med_ID = "#MedID#"
							AND Agency_ID = <cfqueryparam value="#session.agencyid#"  cfsqltype="CF_SQL_INTEGER">
						</cfquery>

				       <cfif getcaremeds.recordcount EQ 0 >
					        <cfquery  name="InsertpCareplan_Meds" datasource="#Application.DataSrc#">
					        	INSERT INTO #Request.prefix_db_agency#.pCareplan_Meds
									(
										Patient_ID, Problem_ID, Pt_Meds_ID, Med_ID, Description, Drug_Name
									) 
									VALUES
									(							
										<cfqueryparam value = "#arguments.Patient_ID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#getproblems.Problem_ID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#PtMedsID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#MedID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value="#Drug_Name#"  cfsqltype="cf_sql_varchar">,
										<cfqueryparam value="#Drug_Name#"  cfsqltype="cf_sql_varchar">								
									)
					        </cfquery>
					         <cfquery name="Last_Insert" datasource="#Application.DataSrc#">
								SELECT LAST_INSERT_ID() as pCareplan_MedsID
						    </cfquery>
					        <cfset pCareplan_MedsID = #Last_Insert.pCareplan_MedsID# />
					    <cfelse>
					    	<cfset pCareplan_MedsID = #getcaremeds.ID# />
					    </cfif> 
					    <cfif getmedspathway.recordcount EQ 0 >

					         <cfquery  name="Insertmeds_pathway_lookup" datasource="#Application.DataSrc#">
					        	INSERT INTO #Request.prefix_db_lookup#.meds_pathway_lookup
									(
										Med_ID, Trade_Num, Generic_Name, Path_ID, Agency_ID, Patient_ID,Approved, Emp_ID, Date_Created
									) 
									VALUES
									(	
										<cfqueryparam value = "#MedID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value = "#getmeds.Trade_Nums#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value="#getmeds.Generic_Name#"  cfsqltype="cf_sql_varchar">,
										<cfqueryparam value = "#getproblems.Path_ID#" CFSQLType ="CF_SQL_INTEGER">,				
										<cfqueryparam value = "#session.agencyid#" CFSQLType ="CF_SQL_INTEGER">,	
										<cfqueryparam value = "#arguments.Patient_ID#" CFSQLType ="CF_SQL_INTEGER">,
										<cfqueryparam value="Not paired"  cfsqltype="cf_sql_varchar">,
										<cfqueryparam value = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,				
										<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">						
									)
					        </cfquery>
					        <cfquery name="LastInsert" datasource="#Application.DataSrc#">
								SELECT LAST_INSERT_ID() as pmeds_MedsID
						    </cfquery>
					        <cfset medspathwy_ID = #LastInsert.pmeds_MedsID# />
					    <cfelse>
					        <cfset medspathwy_ID = #getmedspathway.ID# />
						 </cfif>
						<cfset pCareplan_MedsIDs = ListAppend(pCareplan_MedsIDs,#pCareplan_MedsID#,",") /> 
						 <cfset meds_pathway_IDs = ListAppend(meds_pathway_IDs,#medspathwy_ID#,",") />
				</cfloop>

				<cfif pCareplan_MedsIDs neq "">
					 <cfquery  name="updatepCareplan_Meds" datasource="#Application.DataSrc#">
					    UPDATE #Request.prefix_db_agency#.pCareplan_Meds
					    	SET status 		= <cfqueryparam value = "2" CFSQLType ="CF_SQL_INTEGER">
							WHERE ID NOT IN  (<cfqueryparam CFSQLType="CF_SQL_INTEGER" 
						                              value="#pCareplan_MedsIDs#" 
						                              list="yes" >) 
						    AND Patient_ID = <cfqueryparam value = "#arguments.Patient_ID#" CFSQLType ="CF_SQL_INTEGER"> 
					</cfquery> 
					<cfquery  name="updatepCareplan_Meds" datasource="#Application.DataSrc#">
						DELETE FROM #Request.prefix_db_lookup#.meds_pathway_lookup
						WHERE  ID NOT IN  (<cfqueryparam CFSQLType="CF_SQL_INTEGER" value="#meds_pathway_IDs#"  list="yes">) 
						AND Patient_ID = <cfqueryparam value = "#arguments.Patient_ID#" CFSQLType ="CF_SQL_INTEGER"> 
						AND Agency_ID = <cfqueryparam value="#session.agencyid#"  cfsqltype="CF_SQL_INTEGER">
					</cfquery>					

				</cfif> 
		 								   
		 	<!---  END INSERT pCareplan_Meds  --->
		<cfreturn "Success" />	
	</cffunction>


	<cffunction name="getCareplan_Meds"  access="remote" output="Yes"  returnformat="plain" returntype="string">   
		<cfargument name="Pt_Meds_ID" required="yes" default="SN">
		<cfargument name="Patient_ID" required="yes" default="0">

			<cfquery  name="getcareplanmeds" datasource="#Application.DataSrc#">
				SELECT * FROM  #Request.prefix_db_agency#.pCareplan_Meds
				WHERE Patient_ID = <cfqueryparam value="#arguments.Patient_ID#"  cfsqltype="CF_SQL_INTEGER">
				AND  Pt_Meds_ID IN (<cfqueryparam value="#arguments.Pt_Meds_ID#"  cfsqltype="CF_SQL_INTEGER" list="yes" >)
				AND  status = 0
			</cfquery>

		    <cfset Problem_IDS=  ValueList(getcareplanmeds.Problem_ID) />
			
		<cfreturn Problem_IDS />	
	</cffunction>


	<cffunction name="careplanchecks"  access="remote" output="Yes"  returnformat="plain" returntype="string">   
		<cfargument name="Assmt_ID" required="yes" default="0">
		<cfargument name="Skill" required="yes" default="SN">
		<cfargument name="diagnosis" required="no" default="0">
		<cfargument name="orphan_check" required="no" default="0">
		<cfargument name="_" required="no" default="">

			<cfquery  name="getassessment" datasource="#Application.DataSrc#">
				SELECT * FROM #Request.prefix_db_agency#.pAssessments 
				WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
				AND status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
			</cfquery>

			<cfquery  name="getprobs" datasource="#Application.DataSrc#">
				SELECT pProblem.* FROM #Request.prefix_db_agency#.pProblem 
				JOIN  #Request.prefix_db_lookup#.vetted_190924  ON  pProblem.Description =  vetted_190924.Diagnosis
				WHERE pProblem.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
				AND pProblem.Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
				AND pProblem.status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
				AND pProblem.M0_No like 'M102%' 
				<cfif getassessment.recordCount AND FindNoCase("Hospice Admission", getassessment.F26)>
				AND (pProblem.hospice = 1 OR pProblem.hospice IS NULL)
				</cfif>
				AND (pProblem.Severity > 1  AND vetted_190924.ICD NOT like 'Z%')
				ORDER BY RIGHT(M0_No, 1) ASC
			</cfquery>
			<cfset Request.pathway_ids = ValueList(getprobs.Path_ID) />
			<cfset Request.text = "" />

			<cfquery  name="getslow_sevprobs" datasource="#Application.DataSrc#">
				SELECT pProblem.* FROM #Request.prefix_db_agency#.pProblem 
				JOIN  #Request.prefix_db_lookup#.vetted_190924  ON  pProblem.Description =  vetted_190924.Diagnosis
				WHERE pProblem.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
				AND pProblem.Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
				AND pProblem.status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
				AND pProblem.M0_No like 'M102%' 
				<cfif getassessment.recordCount AND FindNoCase("Hospice Admission", getassessment.F26)>
				AND (pProblem.hospice = 1 OR pProblem.hospice IS NULL)
				</cfif>
				AND pProblem.Severity <= 1 
				ORDER BY RIGHT(M0_No, 1) ASC
			</cfquery>
			<cfset Request.lowpathway_ids = ValueList(getslow_sevprobs.Path_ID) />


			<cfset Request.primarydiagnosislist = '' />
			<cfquery  name="getPDGM" datasource="#Application.DataSrc#">
				SELECT * FROM #Request.prefix_db_agency#.pProblem 
				JOIN  #Request.prefix_db_lookup#.vetted_190924  ON  pProblem.Description =  vetted_190924.Diagnosis
				WHERE pProblem.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
				AND pProblem.status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
				AND pProblem.M0_No like 'M1021%'
				AND vetted_190924.PDGM IS NOT NULL
			</cfquery>
			<cfif getPDGM.recordcount EQ 0 >
				<cfset Request.text = "Primary Diagnosis must be PDGM <br>" />
			</cfif>

			<cfset assessment_reason = #Trim(getassessment.F26)# />
			<cfquery  name="getasscreation" datasource="#Application.DataSrc#">
				 SELECT * FROM #Request.prefix_db_agency#.pAssessments 
					WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
					ORDER BY Record_Creation_Date ASC
 			</cfquery>
 			<cfset ass_creationdate =   #dateformat(getasscreation.Record_Creation_Date,"yyyy-mm-dd")#  />
 			<cfset assessment_skill =  getasscreation.F27 />
			<cfset Request.orphan_symptom_error = 0>
			<!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161'>
						     <cfdump var="#ass_creationdate#"> 
			</cfif>--->
			<cfif ass_creationdate GTE '2024-10-01' AND arguments.orphan_check EQ 1 AND  <!--- session.Display EQ 'Velmurugan G' OR session.Display EQ 'Melissa Cott'
				AND---> ((assessment_reason EQ '1 - Start of care - further visits planned' AND arguments.Skill EQ 'SN')
			  OR (assessment_reason EQ '1 - Start of care - further visits planned - Physical Therapy' AND arguments.Skill EQ 'PT')
			  OR (assessment_reason EQ '1 - Start of care - further visits planned - Occupational Therapy' AND arguments.Skill EQ 'OT')
			  OR (assessment_reason EQ  'PT Adult Evaluation' AND arguments.Skill EQ 'PT')
			   OR (LEFT(assessment_reason,1) EQ '4'  AND arguments.Skill EQ assessment_skill)
			  )  >
				<cfset Request.orphan_symptom_error = this.orphan_symptomerror(#arguments.Assmt_ID#,#assessment_skill#)/>		
			</cfif>
			<!--- <cfset Request.orphan_symptom_error = 0> --->
			<cfif Request.orphan_symptom_error EQ '1' AND CGI.REMOTE_ADDR NEQ '103.143.7.161' >
				<cfif Request.text NEQ "">
					<cfset Request.text = Request.text & "<br>" />
				</cfif>
				<cfset Request.text = Request.text & "Errors on Orphan Symptoms must be corrected before creating the careplan. Click <a href='../patientadmin_new/index.cfm?page=patient&cat=orphansymptoms_new' target='_blank'> Orphan Symptoms</a> to view" >
			</cfif>
			<cfif Request.text EQ "">
				<cfset Request.text = "success" />
			</cfif>
		<cfset Request.text = "success" />		
		<cfreturn request.text />	
	</cffunction>

		<cffunction name="orphan_symptomerror"  access="public" output="Yes"  returnformat="plain" returntype="string">   
		    <cfargument name="Assmt_ID" required="yes" default="0">
		    <cfargument name="Skill" required="yes" default="0">
		    <cfset Request.resulttext =  '0' />
		    	<cfquery  name="getassessments" datasource="#Application.DataSrc#">
					SELECT  * FROM #Request.prefix_db_agency#.pAssessments 
					WHERE Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
					AND status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
					AND Orphan_Field IN (0,2)
				</cfquery>
				<cfset Request.resulttext =  getassessments.recordcount>
		    <cfreturn Request.resulttext />
		</cffunction>


	<cffunction name="primary_PDGM"  access="remote" output="Yes"  returnformat="plain" returntype="string">   
		    <cfargument name="Assmt_ID" required="yes" default="0">
		    <cfset Request.primarydiagnosislist = '' />
		    <cfset Request.text =  '' />
			<cfquery  name="getPDGM" datasource="#Application.DataSrc#">
				SELECT * FROM #Request.prefix_db_agency#.pProblem 
				JOIN  #Request.prefix_db_lookup#.vetted_190924  ON  pProblem.Description =  vetted_190924.Diagnosis
				WHERE pProblem.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
				AND pProblem.status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
				AND pProblem.M0_No like 'M1021%'
				AND vetted_190924.PDGM IS NOT NULL
			</cfquery>
			<cfif getPDGM.recordcount EQ 0 >
				<cfset Request.text = "You should enter atlease one primary diagnsois with PDGM<br>" />
			</cfif>
			<cfif Request.text EQ "">
				<cfset Request.text = "success" />
			</cfif>	
			<cfreturn request.text />

	</cffunction>

	<cffunction name="updategoalid"  access="remote" output="Yes" returnformat="plain" returntype="string">   
		<cfargument name="AutoCareplan_ID" required="yes" default="0">
		<cfargument name="Assmt_ID"   required="yes" default="0">
   		<cfargument name="Skill"      required="yes" default="">
		<cfargument name="Goal_ID"    required="yes" default="0">

		<cfquery  name="getcareplangoals" datasource="#Application.DataSrc#">
		    SELECT * FROM #Request.prefix_db_agency#.pCareplan  
		    WHERE Assmt_ID =  <cfqueryparam  value="#arguments.Assmt_ID#" CFSQLType="CF_SQL_INTEGER">
		    AND Skill      = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
		    AND Goal_ID    = <cfqueryparam value="#arguments.Goal_ID#"  cfsqltype="CF_SQL_INTEGER">
			AND Status < 2
			AND Goal_ID != 0
		</cfquery>


		<cfif getcareplangoals.recordcount gt 0 >
			<cfset message = "This goal id already exisiting in the list. so please try to assign diffrent goal id" />
		<cfelse>
			<cfquery  name="updatepcareplan_goals" datasource="#Application.DataSrc#">
			    UPDATE #Request.prefix_db_agency#.pCareplan
			        SET  
				    Goal_ID    = <cfqueryparam value="#arguments.Goal_ID#"  cfsqltype="CF_SQL_INTEGER">,
				    Date_Change = <cfqueryparam VALUE="#now()#"  cfsqltype="cf_sql_timestamp">,
					Change_by =  <cfqueryparam VALUE="#session.employeeid#"  cfsqltype="cf_sql_integer"> 
				WHERE AutoCareplan_ID =  <cfqueryparam  value="#arguments.AutoCareplan_ID#" CFSQLType="CF_SQL_INTEGER">
				AND Assmt_ID          = <cfqueryparam  value="#arguments.Assmt_ID#" CFSQLType="CF_SQL_INTEGER">
				AND Skill            = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
				AND Status = 0
			</cfquery>
			<cfset message = "success" />
		</cfif>
		<cfreturn message />	     
	</cffunction>

	<cffunction name="updategoalsmet"  access="remote" output="Yes" returnformat="plain" returntype="string">   
		<cfargument name="Careplan_ID" required="yes" default="0">
   		<cfargument name="Skill"      required="yes" default="">
   		<cfargument name="goal_met"      required="yes" default="0">
   			<cfif Careplan_ID neq 0>
   				<cfset generalCFC = createObject("component", "components.general.progressnotes") />
   				<cfset getsucess= generalCFC.retire_careplans("#arguments.Careplan_ID#")/>
				<cfquery  name="updatepcareplan_goals" datasource="#Application.DataSrc#">
				    UPDATE #Request.prefix_db_agency#.pCareplan
				        SET  
					    goal_met    = <cfqueryparam value="#arguments.goal_met#"  cfsqltype="CF_SQL_INTEGER">,
					    <cfif arguments.goal_met  EQ 1 >
					  	  	Date_Resolve = <cfqueryparam VALUE="#now()#"  cfsqltype="CF_SQL_DATE">,
					  	<cfelse>
					  	 	Date_Resolve = NULL,
					  	</cfif>
					    Date_Change = <cfqueryparam VALUE="#now()#"  cfsqltype="cf_sql_timestamp">,
						Change_by   =  <cfqueryparam VALUE="#session.employeeid#"  cfsqltype="cf_sql_integer"> 
					WHERE Careplan_ID = <cfqueryparam  value="#arguments.Careplan_ID#" CFSQLType="CF_SQL_INTEGER">
					AND Status = 0
				</cfquery>
   			</cfif>
			<cfset message = "success" />
		<cfreturn message />	     
	</cffunction>

</cfcomponent>