
<cfparam name="URL.ID" default="0">
<cfparam name="URL.AID" default="0">
<cfparam name="URL.SID" default="0">
<cfparam name="url.thedate" default="0">
<cfparam name="url.frm" default="patient">

<cfset encassid  = #URL.AID# />
<cfset encsid  = #URL.SID# />

<cfif URL.AID NEQ 0 >
   <cfset URL.AID   = decrypt(#URL.AID#,#application.enckey#,"AES","Hex") />
</cfif>
<cfif URL.SID NEQ 0 >
   <cfset URL.SID   = decrypt(#URL.SID#,#application.enckey#,"AES","Hex") />
</cfif>

<cfquery  name="Getpat" datasource="#Application.DataSrc#">
	SELECT pPatients.Patient_ID, pPatients.Pt_First, pPatients.Pt_Last, pPatients.Pt_Middle,pAssessments.F26, 
	pAssessments.Assmt_ID, pAssessments.F177 AS Cert_Start, pAssessments.F178 AS Cert_End ,pAssessments.F180, 
	pAssessments.F25 as Admission_Status,pAssessments.Admit_ID ,pAssessments.AutoAssmt_ID 
	FROM #Request.prefix_db_agency#.pPatients
	JOIN  #Request.prefix_db_agency#.pAssessments ON pAssessments.Patient_ID = pPatients.Patient_ID
	WHERE pPatients.Patient_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#URL.ID#">
	AND  pAssessments.Assmt_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#URL.AID#">
	AND pPatients.status =  <cfqueryparam cfsqltype="cf_sql_integer" value="0"> 
	AND pAssessments.status =  <cfqueryparam cfsqltype="cf_sql_integer" value="0">   
</cfquery>

<cfquery  name="GetAssess" datasource="#Application.DataSrc#">
	SELECT pAssessments.F26,pAssessments.F26 AS Assessment_Reason_M0100, pAssessments.Assmt_ID, pAssessments.F177 AS Cert_Start, pAssessments.F178 AS Cert_End ,pAssessments.F180, pAssessments.F25 AS Admission_Status 
	 FROM  #Request.prefix_db_agency#.pAssessments 
	WHERE pAssessments.Patient_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#URL.ID#"> 
	AND pAssessments.status = <cfqueryparam cfsqltype="cf_sql_integer" value="0"> 
</cfquery>
<cfquery  name="Getschedule" datasource="#Application.DataSrc#" cachedwithin="#CreateTimeSpan(0,0,0,0)#">
      SELECT  pSchedules.*, pSchedules.Skill AS Visit_Type, pSchedules.Skill,
		pSchedules.Paperwork, pSchedules.Travel, pSchedules.PtPayer_ID,  pSchedules.Rev_ID, 
		pSchedules.Visit_Date,
		pSchedules.StartTime, pSchedules.EndTime,
		pSchedules.Assmt_ID,
		pSchedules.Notes
	From #Request.prefix_db_agency#.pSchedules
	Where  pSchedules.Patient_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#URL.ID#">
	AND pSchedules.Assmt_ID =  <cfqueryparam cfsqltype="cf_sql_integer" value="#URL.AID#"> 
	AND pSchedules.status < 1 
</cfquery>


<cfquery  name="GetSched" dbtype="query">
      SELECT  * From  Getschedule
	Where Schedule_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#URL.SID#">
</cfquery>

<cfquery  name="GetE" datasource="#Application.DataSrc#">
    SELECT Emp_ID, Emp_Last, Emp_First
    FROM  #Request.prefix_db_lookup#.pEmployee
    WHERE Emp_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#GetSched.Emp_ID#">
</cfquery>

<cfset skilltype = GetSched.Skill />
<cfset Visit_no = GetSched.Visit_no />

<cfscript>
        careplandash = CreateObject("Component", "pathway.careplan");
        pgnotes = CreateObject("Component", "pathway.progressnotes");
        getpatientgoal = pgnotes.getpatientpgnotes(#URL.AID#,'patient_goal',#skilltype#,#URL.SID#);
        getgoal = careplandash.getscareplan(#URL.AID#,'goal',#skilltype#,0); 
        getstandingorder = pgnotes.getpatientpgnotes(#URL.AID#,'standing_order',#skilltype#,#URL.SID#);
        getproblem = careplandash.getproblems(#URL.AID#,#skilltype#,0,0,'0',1);  
        problemcount = getproblem.recordcount;
	    pathwaydash = CreateObject("Component", "pathway.pathway");
        pwproc = pathwaydash.getspathway(0,'procedure',#URL.AID#,'M102',#skilltype#); 
        pwteach = pathwaydash.getspathway(0,'teach',#URL.AID#,'M102',#skilltype#); 
        pwgoal = pathwaydash.getspathway(0,'goal',#URL.AID#,'M102',#skilltype#); 
	    request.pat = CreateObject("component","components.general.patients").init();
		GetMd = request.pat.medslist(#URL.ID#);
</cfscript>



<cfquery  name="getpgnotes" datasource="#Application.DataSrc#">
    SELECT pProgress.*,pPathway.*,pProgress.Type AS ptype, IFNULL(pPathway.Value,0) AS measurevalue, pCareplan.Param_Lo,pCareplan.Param_Hi ,pCareplan.Param_other,pCareplan.Date_Target,pCareplan.AutoCareplan_ID 
        FROM #Request.prefix_db_agency#.pProgress
    LEFT OUTER JOIN #Request.prefix_db_lookup#.pPathway  ON pPathway.Item_ID = pProgress.Item_ID
    LEFT OUTER JOIN #Request.prefix_db_agency#.pSchedules ON pProgress.Schedule_ID = pSchedules.Schedule_ID
    LEFT OUTER JOIN #Request.prefix_db_agency#.pCareplan ON pCareplan.Careplan_ID = pProgress.Careplan_ID
    WHERE pProgress.Assmt_ID =  <cfqueryparam value="#URL.AID#"  cfsqltype="CF_SQL_INTEGER">
    AND pProgress.Schedule_ID =  <cfqueryparam value="#URL.SID#"  cfsqltype="CF_SQL_INTEGER">
    AND pSchedules.Skill = <cfqueryparam value="#skilltype#"  cfsqltype="cf_sql_varchar">
    AND pProgress.Status = <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER">
    AND pCareplan.Status = <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER">
    GROUP BY pProgress.Progress_ID
    ORDER BY pPathway.Header_No , pPathway.Order_ID ASC
</cfquery>

<cfquery  name="getsymptom" dbtype="query">
		SELECT * FROM getpgnotes        
		WHERE ptype = <cfqueryparam value="symptom"  cfsqltype="cf_sql_varchar">
		ORDER BY Header_No ,Order_ID ASC
</cfquery>

<cfquery  name="highimportance" dbtype="query">
		SELECT * FROM getpgnotes        
		WHERE ptype = <cfqueryparam value="symptom"  cfsqltype="cf_sql_varchar">
		AND TRACK IS NOT NULL
		ORDER BY Header_No ,Order_ID ASC
</cfquery>


<cfquery  name="getptgoals" dbtype="query">
		SELECT * FROM getpgnotes        
		WHERE ptype = <cfqueryparam value="patient_goal"  cfsqltype="cf_sql_varchar">
		ORDER BY Header_No ,Order_ID ASC
</cfquery>

<cfquery  name="getdischargeplan" dbtype="query">
		SELECT * FROM getpgnotes        
		WHERE ptype = <cfqueryparam value="discharge_plan"  cfsqltype="cf_sql_varchar">
		ORDER BY Header_No ,Order_ID ASC
</cfquery>


<cfquery  name="getgoals" dbtype="query">
		SELECT * FROM getpgnotes        
		WHERE ptype = <cfqueryparam value="goal"  cfsqltype="cf_sql_varchar">
		ORDER BY Header_No ,Order_ID ASC
</cfquery>

<cfquery  name="getprocedure" dbtype="query">
		SELECT * FROM getpgnotes        
		WHERE ptype = <cfqueryparam value="procedure"  cfsqltype="cf_sql_varchar">
		ORDER BY Header_No ,Order_ID ASC
</cfquery>

<cfquery  name="getallteaching" dbtype="query">
		SELECT * FROM getpgnotes        
		WHERE ptype = <cfqueryparam value="teach"  cfsqltype="cf_sql_varchar">
		ORDER BY Header_No ,Order_ID ASC
</cfquery>


<cfquery name="getpathway" datasource="#Application.DataSrc#">
		SELECT pPathway.*,pProblem.*,
		GROUP_CONCAT(RIGHT(dx_order, 2)) as order_ids FROM  #Request.prefix_db_lookup#.pPathway 
		INNER JOIN #Request.prefix_db_agency#.pProblem ON pProblem.Path_ID = pPathway.Pathway_ID
		WHERE pProblem.Assmt_ID =  <cfqueryparam CFSQLType="CF_SQL_INTEGER" value="#URL.AID#" >
		AND  status = <cfqueryparam value = "0" CFSQLType ="CF_SQL_INTEGER">
		AND pProblem.M0_No like 'M102%'
		AND pProblem.Skill = <cfqueryparam value="#skilltype#"  cfsqltype="cf_sql_varchar">
		GROUP BY pProblem.Item_ID
		ORDER BY M0_No,Type_Order,pPathway.Order_ID ASC
</cfquery>

<cfquery  name="pgproblems" datasource="#Application.DataSrc#">
		
        SELECT pProgress.*, pProblem.Oasis_Deficits,pProblem.Answer,pProblem.ques_id 
		FROM #Request.prefix_db_agency#.pProgress
		LEFT OUTER JOIN #Request.prefix_db_agency#.pProblem ON pProblem.Problem_ID = pProgress.Careplan_ID AND pProblem.status = 0
		WHERE pProgress.Assmt_ID =  <cfqueryparam value="#URL.AID#"  cfsqltype="CF_SQL_INTEGER">
		AND pProgress.Schedule_ID =  <cfqueryparam value="#URL.SID#"  cfsqltype="CF_SQL_INTEGER">
        AND pProgress.Status = <cfqueryparam value="0"  cfsqltype="CF_SQL_INTEGER">
        AND pProgress.type IN (<cfqueryparam value="problem,symptom"  cfsqltype="cf_sql_varchar" list="yes">)
        AND pProgress.Item_ID NOT IN (SELECT Item_ID FROM #Request.prefix_db_lookup#.pPathway WHERE pPathway.Header = 'Vital Signs')
        GROUP BY pProgress.Progress_ID
</cfquery>

<cfset pg_ids = "" />
<cfset enc_aid    = encrypt(#URL.AID#,#application.enckey#,"AES","Hex") />
<cfset enc_sid   = encrypt(#URL.SID#,#application.enckey#,"AES","Hex") />

<cfloop query= "pgproblems">
	<cfset pg_ids = listAppend(pg_ids, Progress_ID) />
</cfloop>

<cfloop query= "getstandingorder">
	<cfset pg_ids = listAppend(pg_ids, Progress_ID) />
</cfloop>
<cfloop query= "getgoals">
	<cfset pg_ids = listAppend(pg_ids, Progress_ID) />
</cfloop>
<cfloop query= "getptgoals">
	<cfset pg_ids = listAppend(pg_ids, Progress_ID) />
</cfloop>
<cfloop query= "getdischargeplan">
	<cfset pg_ids = listAppend(pg_ids, Progress_ID) />
</cfloop>
<cfloop query= "getsymptom" group ="Progress_ID" >
	<cfset pg_ids = listAppend(pg_ids, Progress_ID) />
</cfloop>
<cfloop query= "getprocedure">
	<cfset pg_ids = listAppend(pg_ids, Progress_ID) />
</cfloop>
<cfloop query= "getallteaching">
	<cfset pg_ids = listAppend(pg_ids, Progress_ID) />
</cfloop>


<cfdocument format="pdf" orientation="portrait" overwrite="yes">

    <cfoutput>
        <table   width="100%">
            <tr>
                <td align="left" style="font-family:Arial;font-size:18px;  padding-top:0px; font-weight:bold;" >
                    <b>#Getpat.Pt_Last# #Getpat.Pt_First#</b>
                </td> 
            </tr>

            <tr>
                <td align="left" style="font-family:Arial;font-size:18px; padding-top:0px; font-weight:bold;" >
                    <b>#GetSched.Visit_Date# #GetSched.StartTime# - #GetSched.EndTime#</b>
                </td> 
            </tr>

            <tr>
                <td align="left" style="font-family:Arial;font-size:18px; padding-top:0px; font-weight:bold;" >
                    <b>#GetSched.Visit_Type# #GetE.Emp_Last# #GetE.Emp_First#</b>
                </td> 
            </tr>
            
        </table>

        <table   width="100%">
            <h3>Complaints this Visit</h3>
        </table>

        <table   width="100%">
            <h3>Assessment Results</h3>
        </table>

    </cfoutput>

	<table class="table table-bordered"  width="100%">
        <thead>
            <tr>
            <th >SYMPTOM</th>
            <th >Reading Or Severity</th>
            <th >Notes</th>
            <th >Physician Alerted</th>
            </tr>
        </thead>
        <tbody>
            <cfoutput query ="getsymptom">
                <cfset thedescription=replace(Description,' ','_','ALL') />
                <tr>
					<td>#thedescription#</td>
					<td>#Value_1#</td>
					<td>#Notes#</td>
					<td><cfif Physician_alert eq '1'>Yes <cfelse> No </cfif></td>
                </tr>

            </cfoutput>
        
       

	<cfif pgproblems.RecordCount GT 0>	
		<cfquery  name="getpaths" datasource="#Application.DataSrc#">
			SELECT * FROM  #Request.prefix_db_lookup#.pPathway 
			WHERE Item_ID IN (<cfqueryparam CFSQLType="CF_SQL_INTEGER" value="#ValueList(pgproblems.Item_ID)#"  list="yes">)
			AND Type = <cfqueryparam value="symptom"  cfsqltype="cf_sql_varchar">
		</cfquery>

		<cfoutput query ="pgproblems">
		
			<cfquery  name="pwsymp" dbtype="query">
				SELECT * FROM  getpaths  
				WHERE Item_ID = <cfqueryparam CFSQLType="CF_SQL_INTEGER" value="#pgproblems.Item_ID#" >
			</cfquery>

			<cfquery  name="getPhrase" datasource="#Application.DataSrc#">
				SELECT * FROM   #Request.prefix_db_lookup#.pPhraseBank  
				WHERE Item_ID = <cfqueryparam CFSQLType="CF_SQL_INTEGER" value="#pgproblems.Item_ID#" >
				ORDER BY Order_ID DESC
			</cfquery>

			<cfset Notes =  pgproblems.Notes />

			<tr>
				<td>#Description# <cfif Oasis_Deficits  EQ 1 ><br> #Answer# </cfif></td>
				<td>#severity#</td>
				<td>#Notes#</td>
				<td><cfif Physician_alert eq '1'>Yes <cfelse> No </cfif></td>
			</tr>

			<cfif Oasis_Deficits  EQ 1 ><tr> <td colspan='4'> <br><br> </td> </tr> </cfif>

		</cfoutput>

	</cfif>

	 </tbody>
	</table>

</cfdocument>


