<!---dashboard.cfc--->
<cfcomponent displayname="Get_Customize_careplan"   hint="ColdFusion Component for  coding wizard PRINT Careplan & Teachning Plan">
    <cffunction name="get_tittle"  access="remote" output="Yes" returntype="query">
			   <cfargument name="type" required="yes" hint="careplan Type" default=""> 
			    <cfquery name="careplan_title" datasource="#Application.DataSrc#">    
                           SELECT * FROM #Request.prefix_db_lookup#.pathway_list
                        <cfif #arguments.type# eq 'careplan'>
                           WHERE  Type = 'goal' OR  Type = 'intervention'
                        <cfelse>
                           WHERE  Type = <cfqueryparam value="#arguments.type#"  cfsqltype="cf_sql_varchar">
                        </cfif>
                        GROUP BY Pathway_ID,M0_Answer
              </cfquery> 
			<cfreturn careplan_title />
    </cffunction>
    
    <cffunction name="get_Employee"  access="remote" output="Yes" returntype="query">		
			<cfargument name="AgencyID" required="yes" hint="AgencyID" default="#session.agencyid#"> 
			<cfquery name="get_emp" datasource="#Application.DataSrc#">    
				SELECT Employee_ID, Last_Name,First_Name FROM #Request.prefix_db_lookup#.Employee
				WHERE  Status = 'active' 
				AND Agency_ID = #arguments.AgencyID# 
				ORDER BY Last_Name,First_Name
			</cfquery> 
			<cfreturn get_emp />
    </cffunction>	
    
    
        <cffunction name="get_coding_patient"  access="remote" output="Yes" returntype="query">
			   <cfargument name="AgencyID" required="yes" hint="AgencyID" default="#session.agencyid#"> 
			     <cfquery  datasource="#Application.DataSrc#" name="Getpatient">
                          SELECT patient.Patient_ID, Assessment_New.Assessment_Reason_M0100,Assessment_New.Assessment_ID,Assessment_New.Assessment_Tracker_ID, 
                          Assessment_New.cdate_cdarte, Assessment_New.Assessment_Number,Assessment_New.Start_of_Care_M0030, Assessment_New.Transmission_Status,
                          Assessment_New.Assessment_Completed_M0090, Assessment_New.Certification_Start, Assessment_New.Certification_End, 
                          Assessment_New.Transmission_Status,
                          patient.Last_Name_M0040 AS PatientLast, patient.First_Name_M0040 AS PatientFirst, 
                          Assessment_New.Admission_Status
                          FROM #Request.prefix_db_agency#.patient
                           JOIN #Request.prefix_db_agency#.Assessment_New  on  patient.Patient_ID = Assessment_New.Patient_ID
                           <!---<cfif CGI.REMOTE_ADDR eq '103.66.78.232'>--->
                           LEFT OUTER  JOIN #Request.prefix_db_agency#.Assessment_New_CW  on  Assessment_New.Assessment_ID = Assessment_New_CW.Assessment_ID
                           <!---<cfelse>
                           JOIN #Request.prefix_db_agency#.Assessment_New_CW  on  Assessment_New.Assessment_ID = Assessment_New_CW.Assessment_ID
                           </cfif>--->
                         <!--- LEFT OUTER  JOIN  #Request.prefix_db_agency#.Coding_Results on   (Assessment_New.Assessment_ID = Coding_Results.Assessment_ID
                          AND Coding_Results.Message_ID = '0'  AND Coding_Results.M0_Item_Medication = 'User Coding Score')--->
                          WHERE	patient.Agency_ID = <cfqueryparam value="#arguments.AgencyID#" cfsqltype="cf_sql_integer">
                          AND	patient.Status = 'active'
                          <!---AND   Assessment_New.CodingNotified = 1--->
                          AND	Assessment_New.deleted <> 1
                          AND	Assessment_New.Archive <> 1
                          AND (Assessment_Reason_M0100 like '%Start of Care%' OR  Assessment_Reason_M0100 like '%Resumption of Care%' OR Assessment_Reason_M0100 like '%Recertification%' OR Assessment_Reason_M0100 like '%Adult%')
                          GROUP BY Assessment_New.Assessment_ID
                          Order by Assessment_New.cdate_cdarte DESC,Assessment_New.Start_of_Care_M0030 DESC , PatientLast ASC
                  </cfquery>
			<cfreturn Getpatient />
    </cffunction>	
	
	
	
	
	
	
	<cffunction name="get_coding_patient_id_based"  access="remote" output="Yes" returntype="query">
	   <cfargument name="AgencyID" required="yes" hint="AgencyID" default="#session.agencyid#"> 
		 <cfquery  datasource="#Application.DataSrc#" name="Getpatient">
				  SELECT patient.Patient_ID, Assessment_New.Assessment_Reason_M0100,Assessment_New.Assessment_ID,Assessment_New.Assessment_Tracker_ID, 
				  Assessment_New.cdate_cdarte, Assessment_New.Assessment_Number,Assessment_New.Start_of_Care_M0030, Assessment_New.Transmission_Status,
				  Assessment_New.Assessment_Completed_M0090, Assessment_New.Certification_Start, Assessment_New.Certification_End, 
				  Assessment_New.Transmission_Status,
				  patient.Last_Name_M0040 AS PatientLast, patient.First_Name_M0040 AS PatientFirst, 
				  Assessment_New.Admission_Status
				  FROM #Request.prefix_db_agency#.patient
				   JOIN #Request.prefix_db_agency#.Assessment_New  on  patient.Patient_ID = Assessment_New.Patient_ID
				   LEFT JOIN #Request.prefix_db_agency#.Assessment_New_CW  on  Assessment_New.Assessment_ID = Assessment_New_CW.Assessment_ID				 
				  WHERE	patient.Agency_ID = <cfqueryparam value="#arguments.AgencyID#" cfsqltype="cf_sql_integer">
				  AND   patient.Patient_ID = <cfqueryparam value="#arguments.Patient_ID#" cfsqltype="cf_sql_integer">
				  AND	patient.Status = 'active'
				 <!--- AND   Assessment_New.CodingNotified = 1--->
				  AND	Assessment_New.deleted <> 1
				  AND	Assessment_New.Archive <> 1
				  AND (Assessment_Reason_M0100 like '%Start of Care%' OR  Assessment_Reason_M0100 like '%Resumption of Care%' OR Assessment_Reason_M0100 like '%Recertification%' OR Assessment_Reason_M0100 like '%Adult%')	
		  </cfquery>
	<cfreturn Getpatient />
    </cffunction>		
	
	
	<cffunction name="Get_Coding_Patient_List"  access="remote" output="Yes" returntype="query">
			   <cfargument name="AgencyID" required="yes" hint="AgencyID" default="#session.agencyid#"> 
			     <cfquery  datasource="#Application.DataSrc#" name="Getpatient">
                          SELECT patient.Patient_ID, Assessment_New.Assessment_Reason_M0100,Assessment_New.Assessment_ID,Assessment_New.Assessment_Tracker_ID, 
                          Assessment_New.cdate_cdarte, Assessment_New.Assessment_Number,Assessment_New.Start_of_Care_M0030, Assessment_New.Transmission_Status,
                          Assessment_New.Assessment_Completed_M0090, Assessment_New.Certification_Start, Assessment_New.Certification_End, 
                          Assessment_New.Transmission_Status,
                          patient.Last_Name_M0040 AS PatientLast, patient.First_Name_M0040 AS PatientFirst, 
                          Assessment_New.Admission_Status
                          FROM #Request.prefix_db_agency#.patient
                           JOIN #Request.prefix_db_agency#.Assessment_New  on  patient.Patient_ID = Assessment_New.Patient_ID
                           <!---<cfif CGI.REMOTE_ADDR eq '103.66.78.232'>--->
                           LEFT OUTER  JOIN #Request.prefix_db_agency#.Assessment_New_CW  on  Assessment_New.Assessment_ID = Assessment_New_CW.Assessment_ID
                           <!---<cfelse>
                           JOIN #Request.prefix_db_agency#.Assessment_New_CW  on  Assessment_New.Assessment_ID = Assessment_New_CW.Assessment_ID
                           </cfif>--->
                         <!--- LEFT OUTER  JOIN  #Request.prefix_db_agency#.Coding_Results on   (Assessment_New.Assessment_ID = Coding_Results.Assessment_ID
                          AND Coding_Results.Message_ID = '0'  AND Coding_Results.M0_Item_Medication = 'User Coding Score')--->
                          WHERE	patient.Agency_ID = <cfqueryparam value="#arguments.AgencyID#" cfsqltype="cf_sql_integer">
                          AND	patient.Status = 'active'
                          <!---AND   Assessment_New.CodingNotified = 1--->
                          AND	Assessment_New.deleted <> 1
                          AND	Assessment_New.Archive <> 1
                          AND (Assessment_Reason_M0100 like '%Start of Care%' OR  Assessment_Reason_M0100 like '%Resumption of Care%' OR Assessment_Reason_M0100 like '%Recertification%' OR Assessment_Reason_M0100 like '%Adult%')
                          GROUP BY <!---Assessment_New.Assessment_ID---> patient.Patient_ID
                          Order by Assessment_New.cdate_cdarte DESC,Assessment_New.Start_of_Care_M0030 DESC , PatientLast ASC
                  </cfquery>
			<cfreturn Getpatient />
    </cffunction>	
	
	<cffunction name="Get_Coding_Patient_List_test"  access="remote" output="Yes" returnFormat= "JSON">
		<cfargument name="AgencyID" required="yes" hint="AgencyID" default="#session.agencyid#"> 
			<cfquery  datasource="#Application.DataSrc#" name="Getpatient">
				SELECT 
					patient.Patient_ID, Assessment_New.Assessment_Reason_M0100,Assessment_New.Assessment_ID,Assessment_New.Assessment_Tracker_ID, 
					Assessment_New.cdate_cdarte, Assessment_New.Assessment_Number,Assessment_New.Start_of_Care_M0030, Assessment_New.Transmission_Status,
					Assessment_New.Assessment_Completed_M0090, Assessment_New.Certification_Start, Assessment_New.Certification_End, 
					Assessment_New.Transmission_Status,
					patient.Last_Name_M0040 AS PatientLast, patient.First_Name_M0040 AS PatientFirst, 
					Assessment_New.Admission_Status, Assessment_New.OASIS_2019_2020_PDGM
				FROM 
					#Request.prefix_db_agency#.patient
				JOIN 
					#Request.prefix_db_agency#.Assessment_New  on  patient.Patient_ID = Assessment_New.Patient_ID
				<cfif CGI.REMOTE_ADDR eq '103.66.78.232'>
				LEFT OUTER JOIN 
					#Request.prefix_db_agency#.Assessment_New_CW  on  Assessment_New.Assessment_ID = Assessment_New_CW.Assessment_ID
				<cfelse>
				JOIN 
					#Request.prefix_db_agency#.Assessment_New_CW  on  Assessment_New.Assessment_ID = Assessment_New_CW.Assessment_ID
				</cfif>					
				WHERE	
					patient.Agency_ID = <cfqueryparam value="#arguments.AgencyID#" cfsqltype="cf_sql_integer">
					AND	patient.Status = 'active'						
					AND	Assessment_New.deleted <> 1
					AND	Assessment_New.Archive <> 1
					AND (Assessment_Reason_M0100 like '%Start of Care%' OR  Assessment_Reason_M0100 like '%Resumption of Care%' OR Assessment_Reason_M0100 like '%Recertification%')
					GROUP BY Assessment_New.Assessment_ID <!---patient.Patient_ID--->
					Order by Assessment_New.cdate_cdarte DESC,Assessment_New.Start_of_Care_M0030 DESC , PatientLast ASC
			</cfquery>
			<cfset response_key = [] />
			<cfset exp_all = []/>
			<cfparam name="obj" default="">
			<cfparam name="Explanation_obj" default="">
			<cfset Patient_ID_Array= ArrayNew(1)>			
			<cfloop query="#Getpatient#">								
				<cfif ArrayContains(Patient_ID_Array,#Getpatient.PATIENT_ID#)>						
					<cfloop index="thisElement" from="1" to="#arraylen( Patient_ID_Array )#">						
						<cfif #response_key[thisElement].Patient_ID_Header# EQ #Getpatient.PATIENT_ID#>						
							<cfset Get_Array_Position = #thisElement#>
						</cfif>
					</cfloop>	
					<cfset Explanation_obj  = { "Patient_ID" = #Getpatient.PATIENT_ID#, "Assessment_ID"  = #Getpatient.Assessment_ID#, "Assessment_Reason_M0100" = #Getpatient.Assessment_Reason_M0100#, "Assessment_Completed_M0090" = #Getpatient.Assessment_Completed_M0090#, "Assessment_creat_type" = #Getpatient.OASIS_2019_2020_PDGM# }  />										
					<cfset arrayAppend(response_key[#Get_Array_Position#].Data_All,Explanation_obj) />					
					<cfset Explanation_obj = "">
					<cfset Get_Array_Position = "">
				<cfelse>
					<cfset ArrayAppend(Patient_ID_Array, #Getpatient.PATIENT_ID#)>					
					<cfset Explanation_obj  = { "Patient_ID" = #Getpatient.PATIENT_ID#, "Assessment_ID"  = #Getpatient.Assessment_ID#, "Assessment_Reason_M0100" = #Getpatient.Assessment_Reason_M0100#, "Assessment_Completed_M0090" = #Getpatient.Assessment_Completed_M0090#, "Assessment_creat_type" = #Getpatient.OASIS_2019_2020_PDGM# }  />
					<cfset arrayAppend(exp_all,Explanation_obj) />
				
					<cfset obj  = {"Patient_ID_Header" = #Getpatient.PATIENT_ID# , "Data_All" = exp_all , "PatientLast" = #Getpatient.PatientLast#, "PatientFirst" = #Getpatient.PatientFirst# <!---, "Assessment_count" = #ArrayLen(exp_all)#---> }  />
					<cfset arrayAppend(response_key,obj) />					
					<cfset exp_all = []>
					<cfset obj = "">
					<cfset Explanation_obj = "">
			    </cfif>	
			</cfloop>
			<cfreturn  serializeJSON(response_key) > 		
    </cffunction>
	
	
	
	
	<cffunction name="Get_Coding_Patient_subquey"  access="remote" output="Yes" returnFormat= "JSON">
		<cfargument name="AgencyID" required="yes" hint="AgencyID" default="#session.agencyid#"> 
			<cfquery  datasource="#Application.DataSrc#" name="Getpatient">
			SELECT 
				patient.Patient_ID, Assessment_New.Assessment_Reason_M0100,Assessment_New.Assessment_ID,Assessment_New.Assessment_Tracker_ID, 
				Assessment_New.cdate_cdarte, Assessment_New.Assessment_Number,Assessment_New.Start_of_Care_M0030, Assessment_New.Transmission_Status,
				Assessment_New.Assessment_Completed_M0090, Assessment_New.Certification_Start, Assessment_New.Certification_End, 
				Assessment_New.Transmission_Status,Assessment_New.cdate_cdarte,
				patient.Last_Name_M0040 AS PatientLast, patient.First_Name_M0040 AS PatientFirst, 
				Assessment_New.Admission_Status, Assessment_New.OASIS_2019_2020_PDGM,				
				(select COUNT(*) from #Request.prefix_db_agency#.Coding_Results where 
					Coding_Results.Patient_ID = patient.Patient_ID
					and Coding_Results.Assessment_ID = Assessment_New.Assessment_ID
					and M0_Item_Medication like '%(M102%'
				) as Recommended_Diagnosis_Report,
				<!---(select COUNT(*) from agency_179.Coding_Results where 
					Coding_Results.Patient_ID = patient.Patient_ID
					and Coding_Results.Assessment_ID = Assessment_New.Assessment_ID
				) as Interven_Goals_Report,--->
				(select COUNT(*) from #Request.prefix_db_agency#.Coding_Results 
					<!---join #Request.prefix_db_agency#.Coding_Scrub on Coding_Scrub.patient_ID=Coding_Results.Patient_ID---> 							
				where 
					Coding_Results.Patient_ID = patient.Patient_ID
					<!---and Coding_Scrub.Assessment_ID=Coding_Results.Assessment_ID--->
					and Coding_Results.Assessment_ID = Assessment_New.Assessment_ID
				) as Recom_Visit_Schdule_Report ,
				(select COUNT(*) from #Request.prefix_db_agency#.Coding_Scrub where 
					Coding_Scrub.Patient_ID = patient.Patient_ID
					and Coding_Scrub.Assessment_ID = Assessment_New.Assessment_ID
				) as OASIS_D_PDGM_Report
			FROM 
				#Request.prefix_db_agency#.patient
			JOIN 
				#Request.prefix_db_agency#.Assessment_New  on  patient.Patient_ID = Assessment_New.Patient_ID
		<!---	<cfif CGI.REMOTE_ADDR eq '103.66.78.232'>--->
			LEFT OUTER JOIN 
				#Request.prefix_db_agency#.Assessment_New_CW  on  Assessment_New.Assessment_ID = Assessment_New_CW.Assessment_ID
			<!---<cfelse>
			JOIN 
				#Request.prefix_db_agency#.Assessment_New_CW  on  Assessment_New.Assessment_ID = Assessment_New_CW.Assessment_ID
			</cfif>	--->			
			LEFT JOIN 
				#Request.prefix_db_agency#.Coding_Results  on  Coding_Results.Patient_ID = patient.Patient_ID and Coding_Results.Assessment_ID = Assessment_New.Assessment_ID
			WHERE	
				patient.Agency_ID = <cfqueryparam value="#arguments.AgencyID#" cfsqltype="cf_sql_integer">
				AND	patient.Status = 'active'						
				AND	Assessment_New.deleted <> 1
				AND	Assessment_New.Archive <> 1
				AND (Assessment_Reason_M0100 like '%Start of Care%' OR  Assessment_Reason_M0100 like '%Resumption of Care%' OR Assessment_Reason_M0100 like '%Recertification%' OR Assessment_Reason_M0100 like '%Adult%' OR  Assessment_Reason_M0100 like '%Other%')
				GROUP BY Assessment_New.Assessment_ID <!---patient.Patient_ID--->
				Order by Assessment_New.cdate_cdarte DESC,Assessment_New.Start_of_Care_M0030 DESC , PatientLast ASC
			</cfquery>
			<cfset response_key = [] />
			<cfset exp_all = []/>
			<cfparam name="obj" default="">
			<cfparam name="Explanation_obj" default="">
			<cfset Patient_ID_Array= ArrayNew(1)>			
			<cfloop query="#Getpatient#">								
				<cfif ArrayContains(Patient_ID_Array,#Getpatient.PATIENT_ID#)>						
					<cfloop index="thisElement" from="1" to="#arraylen( Patient_ID_Array )#">						
						<cfif #response_key[thisElement].Patient_ID_Header# EQ #Getpatient.PATIENT_ID#>						
							<cfset Get_Array_Position = #thisElement#>
						</cfif>
					</cfloop>	
					<cfset Explanation_obj  = { "Patient_ID" = #Getpatient.PATIENT_ID#, "Assessment_ID"  = #Getpatient.Assessment_ID#, "Assessment_Reason_M0100" = #Getpatient.Assessment_Reason_M0100#, "Assessment_Completed_M0090" = #Getpatient.Assessment_Completed_M0090#, "Assessment_creat_type" = #Getpatient.OASIS_2019_2020_PDGM#, "Recommended_Diagnosis_Report" = #Getpatient.Recommended_Diagnosis_Report#, "Interven_Goals_Report" = "", "Recom_Visit_Schdule_Report" = #Getpatient.Recom_Visit_Schdule_Report#, "OASIS_D_PDGM_Report" = #Getpatient.OASIS_D_PDGM_Report#,"uploaded" = #Getpatient.cdate_cdarte# }  />										
					<cfset arrayAppend(response_key[#Get_Array_Position#].Data_All,Explanation_obj) />					
					<cfset Explanation_obj = "">
					<cfset Get_Array_Position = "">
				<cfelse>
					<cfset ArrayAppend(Patient_ID_Array, #Getpatient.PATIENT_ID#)>					
					<cfset Explanation_obj  = { "Patient_ID" = #Getpatient.PATIENT_ID#, "Assessment_ID"  = #Getpatient.Assessment_ID#, "Assessment_Reason_M0100" = #Getpatient.Assessment_Reason_M0100#, "Assessment_Completed_M0090" = #Getpatient.Assessment_Completed_M0090#, "Assessment_creat_type" = #Getpatient.OASIS_2019_2020_PDGM#, "Recommended_Diagnosis_Report" = #Getpatient.Recommended_Diagnosis_Report#, "Interven_Goals_Report" = "", "Recom_Visit_Schdule_Report" = #Getpatient.Recom_Visit_Schdule_Report#, "OASIS_D_PDGM_Report" = #Getpatient.OASIS_D_PDGM_Report#,"uploaded" = #Getpatient.cdate_cdarte# }  />
					<cfset arrayAppend(exp_all,Explanation_obj) /> 
				
					<cfset obj  = {"Patient_ID_Header" = #Getpatient.PATIENT_ID# , "Data_All" = exp_all , "PatientLast" = #Getpatient.PatientLast#, "PatientFirst" = #Getpatient.PatientFirst# <!---, "Assessment_count" = #ArrayLen(exp_all)#---> }  />
					<cfset arrayAppend(response_key,obj) />					
					<cfset exp_all = []>
					<cfset obj = "">
					<cfset Explanation_obj = "">
			    </cfif>	
			</cfloop>	
			<cfreturn  serializeJSON(response_key) > 
    </cffunction>		
	
</cfcomponent>