<!---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 >
			<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 = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
					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 = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
		   </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>


	<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'>
				<cfquery  name="getquestionsproblems" datasource="#Application.DataSrc#">
					SELECT pProblem.* FROM  #Request.prefix_db_agency#.pProblem
					LEFT OUTER JOIN #Request.prefix_db_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 >
			    	  AND pProblem.Problem_ID  IN (#Request.questions_problemids#)
			    </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>  --->

		 	<cfloop index="pathwaytype" list = "symptom,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  >							
							<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, 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 = "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 />
						
						<!--- 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, 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="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="insertmedicationsold"  access="remote" output="Yes"  returnformat="plain" returntype="string">   
		<cfargument name="problem_ids" required="yes" default="0">
		<cfargument name="Pt_Meds_ID" required="yes" default="SN">
		<cfargument name="Patient_ID" required="yes" default="0">

	    <cfif arguments.Pt_Meds_ID  neq 0  >     		
		 	<!--- 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
				WHERE  m.Patient_ID = <cfqueryparam value="#arguments.Patient_ID#"  cfsqltype="CF_SQL_INTEGER">
				AND   m.status = 0
				AND  m.PtMeds_ID IN (<cfqueryparam value="#arguments.Pt_Meds_ID#"  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="#arguments.problem_ids#"  cfsqltype="CF_SQL_INTEGER" list="yes">)
				</cfquery>
			<cfloop query="getproblems">
			    <cfloop query="getmeds">
				<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="#getproblems.Problem_ID#"  cfsqltype="CF_SQL_INTEGER">
					AND status = <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER">
					AND Pt_Meds_ID = <cfqueryparam value="#PtMeds_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 = "#arguments.Patient_ID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "#getproblems.Problem_ID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "#PtMeds_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>
			         <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, Emp_ID, Date_Created
							) 
							VALUES
							(	
								<cfqueryparam value = "#MedID#" CFSQLType ="CF_SQL_INTEGER">,
								<cfqueryparam value = "#getmeds.Trade_Num#" 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 = "#session.employeeid#" CFSQLType ="CF_SQL_INTEGER">,				
								<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">						
							)
			        </cfquery>
		        </cfif>
		        </cfloop>
			</cfloop>			   
		 	<!---  END INSERT pCareplan_Meds  --->
		</cfif>
		<cfreturn "Success" />	
	</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="orphan_symptomerror_old"  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="GtDX" datasource="#Application.DataSrc#">
				SELECT pProblem.* FROM #Request.prefix_db_agency#.pProblem 
				 JOIN #Request.prefix_db_lookup#.pPathway ON pPathway.Pathway_ID = pProblem.Path_ID
				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   pPathway.Agency_ID IS NULL
				AND pProblem.status = <cfqueryparam value="0"  cfsqltype="cf_sql_varchar">
				AND pProblem.M0_No like 'M102%' 
				GROUP BY pProblem.Problem_ID
				ORDER BY pProblem.Problem_ID
			</cfquery>
			
			<cfquery  datasource="#Application.DataSrc#" name="GtDX">
				 SELECT p.*, pt.*,a.AutoAssmt_ID,a.Admit_ID,a.Assmt_ID,a.F26,a.F176,
				 a.F320 AS QA_View  FROM #Request.prefix_db_agency#.pProblem p
				 JOIN #Request.prefix_db_lookup#.pPathway ON pPathway.Pathway_ID = p.Path_ID
			     JOIN #Request.prefix_db_agency#.pAssessments a ON a.Assmt_ID = p.Assmt_ID
				 JOIN #Request.prefix_db_agency#.pPatients pt  ON pt.Patient_ID = a.Patient_ID
				 JOIN #Request.prefix_db_agency#.pAdmit ad  ON ad.Admit_ID = a.Admit_ID
				 WHERE ad.status = 0
				 AND pt.status = 0
				 AND a.status = 0
				 AND p.status = 0
				 AND p.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
				 AND p.Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar">
				 <!---AND p.Skill ='SN'--->
				 AND   pPathway.Agency_ID IS NULL
			     AND p.M0_No like 'M102%'
			     GROUP BY p.Problem_ID,p.Assmt_ID
				 ORDER BY a.F177 DESC, p.dx_order ASC
			</cfquery>--->

			<cfquery  datasource="#Application.DataSrc#" name="GtDX">
				 SELECT p.*, pt.*,a.AutoAssmt_ID,a.Admit_ID,a.Assmt_ID,a.F26,a.F176,a.F27,
				 a.F320 AS QA_View  FROM #Request.prefix_db_agency#.pProblem p
				 LEFT OUTER JOIN #Request.prefix_db_lookup#.pPathway ON pPathway.Pathway_ID = p.Path_ID AND   pPathway.Agency_ID IS NULL
			     JOIN #Request.prefix_db_agency#.pAssessments a ON a.Assmt_ID = p.Assmt_ID
				 JOIN #Request.prefix_db_agency#.pPatients pt  ON pt.Patient_ID = a.Patient_ID
				 JOIN #Request.prefix_db_agency#.pAdmit ad  ON ad.Admit_ID = a.Admit_ID
				 JOIN (
				    SELECT Admit_ID
				    FROM #Request.prefix_db_agency#.pAdmit 
				    WHERE Patient_ID = '#session.cs.patientid#' AND Status = 0
				    ORDER BY M0030_START_CARE_DT DESC 
				    LIMIT 1
				) AS latest_admit ON latest_admit.Admit_ID = a.Admit_ID
				 WHERE ad.status = 0
				 AND pt.status = 0
				 AND a.status = 0
				 AND p.status = 0
				  AND p.Assmt_ID = <cfqueryparam value="#arguments.Assmt_ID#"  cfsqltype="CF_SQL_INTEGER">
				  <!--- AND p.Skill = <cfqueryparam value="#arguments.Skill#"  cfsqltype="cf_sql_varchar"> --->
			 	AND (a.F26 like '1%' OR  a.F26 like '4%') AND a.f25 = 1
			 	 AND ad.M0030_START_CARE_DT >= '2024-10-01'
			     AND p.M0_No like 'M102%'
			     GROUP BY p.Problem_ID,p.Assmt_ID
				 ORDER BY a.F177 DESC, p.dx_order ASC
			</cfquery>

			<cfquery  name="GetComms" datasource="#Application.DataSrc#">
				 SELECT c.* ,
				 	REPLACE(REPLACE(REPLACE(c.Memo, '&amp;', ''), '&lt;', ''), '&gt;', '') AS comm_memo 
				 FROM   #Request.prefix_db_agency#.Communication c
				 JOIN  #Request.prefix_db_agency#.CommunicationSubjects cs on   cs.CommSub_Id = c.CommSub_Id
				 WHERE   c.Patient_ID = #session.cs.patientid# <!--- AND c.Status = 0 --->
				 AND cs.Subject like 'symptoms with no related diagnosis'
				 ORDER BY Subject
			</cfquery>

			
					
			<cfoutput query="GtDX" group="Assmt_ID">
				 <cfset Request.dxpath_ids = "" />
				<cfoutput><cfset Request.dxpath_ids = ListAppend(Request.dxpath_ids, '#Path_ID#') /></cfoutput>
				<!--- Diagnosis without paired symptoms --->
				<cfoutput>
					<!--- <cfquery  datasource="#Application.DataSrc#" name="getPairedsymp">
						select * from #Request.prefix_db_agency#.pOrphan
						where status = 0
						and Problem_Dx_ID = '#Problem_ID#'
						AND Paired = 'Y'
					</cfquery>	--->
					<cfquery  datasource="#Application.DataSrc#" name="getPairedsymp">
						select pOrphan.* from #Request.prefix_db_agency#.pOrphan
						JOIN #Request.prefix_db_agency#.pProblem ON pProblem.Problem_ID = pOrphan.Problem_ID
						AND pProblem.status = 0
						where pOrphan.status = 0
						and pOrphan.Problem_Dx_ID = '#Problem_ID#'
						AND pOrphan.Paired = 'Y'
						AND  pProblem.M0_No  NOT IN ('CM')
						GROUP BY Orphan_ID  
					</cfquery>	

					<cfif getPairedsymp.recordcount gt 0 >
						<cfif GtDX.Severity LT 2><cfset Request.resulttext= "1">
							<!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161'>
						     <cfdump var="#getPairedsymp#"> 
							</cfif> --->
						<cfreturn Request.resulttext /><cfbreak><cfelse></cfif>
					</cfif>
				</cfoutput>
				<!--- Diagnosis without paired symptoms --->
				<cfoutput>
					<!--- <cfquery  datasource="#Application.DataSrc#" name="getPairedsymp">
						select * from #Request.prefix_db_agency#.pOrphan
						where status = 0
						and Problem_Dx_ID = '#Problem_ID#'
						AND Assmt_ID = '#Assmt_ID#'
						and Paired='Y'
					</cfquery> --->

					<cfquery  datasource="#Application.DataSrc#" name="getPairedsymp">
						select * from #Request.prefix_db_agency#.pOrphan
						JOIN #Request.prefix_db_agency#.pProblem ON pProblem.Problem_ID = pOrphan.Problem_ID
						AND pProblem.status = 0
						where pOrphan.status = 0
						and pOrphan.Problem_Dx_ID = '#Problem_ID#'
						AND pOrphan.Assmt_ID = '#Assmt_ID#'
						and pOrphan.Paired='Y'
						AND  pProblem.M0_No  NOT IN ('CM')
						GROUP BY Orphan_ID 
					</cfquery>
					<cfif getPairedsymp.recordcount EQ 0>
						<cfif GtDX.Severity GTE 2><cfset Request.resulttext= "1"> 
						  <!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161'>
						     <cfdump var="#getPairedsymp#"> 
							</cfif> --->
						<cfreturn Request.resulttext /><cfbreak><cfelse></cfif>
					</cfif>

				</cfoutput>
					

				<!--- Symptoms without diagnosis --->
				<cfquery  datasource="#Application.DataSrc#" name="getall_unpaired">
					SELECT pOrphan.*,REPLACE(REPLACE(REPLACE(pOrphan.Problem, '&', ''), '<', ''), '>', '') AS orphan_Problem   from #Request.prefix_db_agency#.pOrphan
					JOIN #Request.prefix_db_agency#.pProblem ON pProblem.Problem_ID = pOrphan.Problem_ID
					AND pProblem.status = 0
					where pOrphan.status = 0
					AND pOrphan.Assmt_ID = '#Assmt_ID#'
					<!--- AND pOrphan.Paired ='Y' --->
					AND  pProblem.M0_No  NOT IN ('CM')
					AND pProblem.Description NOT LIKE 'GG0%' AND Trim(pProblem.Description) NOT LIKE '(%'
					ORDER BY pOrphan.Problem ASC
				</cfquery>
					
				<cfloop query="getall_unpaired">
					<cfquery  dbtype="query" name="getsunpaired">
						SELECT * FROM getall_unpaired
						WHERE Problem = '#Problem#'					
						AND Paired ='Y' 
					</cfquery>	

					<cfif  getsunpaired.recordcount EQ 0 >
						<cfset tempDescription = Replace(getall_unpaired.orphan_Problem, "<&>", "", "all") />
						<cfquery  dbtype="query" name="getcom">
							SELECT * FROM GetComms
							WHERE  comm_memo like '%#tempDescription#%'
						</cfquery>
						
						
						<cfif  getcom.recordcount EQ 0>
							 <!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161'>
							     <cfdump var="#getall_unpaired#">
							      <cfdump var="#getcom#"> 
							      <cfdump var="#GetComms#"> 
							</cfif>--->
							 <cfset Request.resulttext= "1"><cfreturn Request.resulttext /><cfbreak>
						</cfif>
					</cfif>
				</cfloop>

			</cfoutput>					
	
		<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_old"  access="remote" output="Yes" returnformat="plain" returntype="string">   
		<cfargument name="AutoCareplan_ID" required="yes" default="0">
   		<cfargument name="Skill"      required="yes" default="">
			<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">,
				    Date_Resolve = <cfqueryparam VALUE="#now()#"  cfsqltype="CF_SQL_DATE">,
				    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 Status = 0
			</cfquery>
			<cfset message = "success" />
		<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>