<cfcomponent hint="Physician Functions">

    <cffunction name="getDocTurnArounds" access="public" output="Yes" returntype="string">
        <cfargument name="agencyId" type="string" required="Yes" />
        <cfargument name="docId" type="string" required="Yes" />
        <cfparam default='' name='str'/>
        <cfquery  name="turned" datasource="#Application.DataSrc#">
            SELECT count(*) c
           FROM #Request.prefix_db_agency#.pAssessments an
            LEFT OUTER JOIN #Request.prefix_db_agency#.pPatients p on an.Patient_Id = p.Patient_Id  
            LEFT OUTER JOIN #Request.prefix_db_agency#.pAdmit pa on an.Patient_Id = pa.Patient_Id  
            LEFT OUTER JOIN #Request.prefix_db_lookup#.pEmployee e on e.Emp_ID = pa.Case_Manager
            LEFT OUTER JOIN #Request.prefix_db_lookup#.pPhysicians ph on e.Emp_ID = ph.Emp_ID 
            LEFT OUTER JOIN #Request.prefix_db_agency#.pCMS4857 pcm on ph.Emp_ID = pcm.Render_Phys_ID 
            WHERE e.Emp_Type = 'Physician'
            AND  ph.Phys_ID = '#docId#'
            AND    ph.loc_id = '#agencyId#'
            AND    an.status = 0
            AND    p.Status < 2
            AND    pa.Status = 0
            AND    ph.Status = 0
            AND    pcm.Status = 0
            AND   pcm.Date_Received BETWEEN DATE_SUB(NOW(), INTERVAL 90 DAY) AND NOW()
        </cfquery>
        <cfif turned.Recordcount lt 1>
            <cfset str = 0>
        <cfelse> 
            <cfoutput query="turned">
            <cfset str = turned.c />
            </cfoutput>
        </cfif>
        <cfreturn str />
    </cffunction>

    <cffunction name="getDocTurnsAvg" access="public" output="Yes" returntype="string">
        <cfargument name="agencyId" type="string" required="Yes" />
        <cfargument name="docId" type="string" required="Yes" />
        <cfparam name='str' default='' />
        <cfquery  name="avg" datasource="#Application.DataSrc#">
            SELECT DateDiff(pcm.Date_Received, pcm.date_sent) d
            FROM #Request.prefix_db_agency#.pAssessments an
            LEFT OUTER JOIN #Request.prefix_db_agency#.pPatients p on an.Patient_Id = p.Patient_Id  
            LEFT OUTER JOIN #Request.prefix_db_agency#.pAdmit pa on an.Patient_Id = pa.Patient_Id  
            LEFT OUTER JOIN #Request.prefix_db_lookup#.pEmployee e on e.Emp_ID = pa.Case_Manager
            LEFT OUTER JOIN #Request.prefix_db_lookup#.pPhysicians ph on e.Emp_ID = ph.Emp_ID 
            LEFT OUTER JOIN #Request.prefix_db_agency#.pCMS4857 pcm on ph.Emp_ID = pcm.Render_Phys_ID 
            WHERE  ph.Phys_ID = '#docId#'
            AND    e.emp_type = 'Physician'
            AND    ph.loc_id = '#agencyId#'
            AND    pcm.Date_Received BETWEEN DATE_SUB(NOW(), INTERVAL 90 DAY) AND NOW()
            AND    an.status = 0
            AND    p.Status < 2
            AND    pa.Status = 0
            AND    ph.Status = 0
        </cfquery>
        <cfset dd = -1 />
        <cfset dc = 0 />
        <cfoutput query="avg">
            <cfif dd eq -1>
                <cfset dd = 0 />
            </cfif>
            <cfif avg.d neq ''>
                <cfset dd = dd + avg.d />
                <cfset dc = dc + 1 />
            <cfelse>
                <cfset dd = dd + 0 />
                <cfset dc = dc + 1 />
            </cfif>
        </cfoutput>
        <cfif dc gt 0>
            <cfset str = NumberFormat((dd / dc)) />
            <cfif str eq 0>
                <cfset str = "same day" />
            <cfelseif str eq 1>
                <cfset str = str & " day" />
            <cfelse>
                <cfset str = str & " days" />
            </cfif>
        <cfelse>
            <cfset str = '' />
        </cfif>
        <cfreturn str />
    </cffunction>

    <cffunction name="getDocNotTurned" access="public" output="Yes" returntype="string">
        <cfargument name="agencyId" type="string" required="Yes" />
        <cfargument name="docId" type="string" required="Yes" />
        <cfparam default='' name='str'/>
        <cfquery  name="noturn" datasource="#Application.DataSrc#">
            SELECT count(*) c
            FROM #Request.prefix_db_agency#.pAssessments an
            LEFT OUTER JOIN #Request.prefix_db_agency#.pPatients p on an.Patient_Id = p.Patient_Id  
            LEFT OUTER JOIN #Request.prefix_db_agency#.pAdmit pa on an.Patient_Id = pa.Patient_Id  
            LEFT OUTER JOIN #Request.prefix_db_lookup#.pEmployee e on e.Emp_ID = pa.Case_Manager
            LEFT OUTER JOIN #Request.prefix_db_lookup#.pPhysicians ph on e.Emp_ID = ph.Emp_ID 
            LEFT OUTER JOIN #Request.prefix_db_agency#.pCMS4857 pcm on ph.Emp_ID = pcm.Render_Phys_ID  
            WHERE  ph.Phys_ID = '#docId#'
            AND    e.emp_type = 'Physician'
            AND    ph.loc_id = '#agencyId#'
            AND    pcm.Date_Received BETWEEN DATE_SUB(NOW(), INTERVAL 90 DAY) AND NOW()
            AND    an.status = 0
            AND    p.Status < 2
            AND    pa.Status = 0
            AND    ph.Status = 0
        </cfquery>
        <cfif noturn.Recordcount lt 1>
            <cfset str = 0>
        <cfelse> 
            <cfoutput query="noturn">
                <cfset str = noturn.c />
            </cfoutput>
        </cfif>
        <cfreturn str />
    </cffunction>

<cffunction name="getDocNotTurnedAvg" access="public" output="Yes" returntype="string">
    <cfargument name="agencyId" type="string" required="Yes" />
    <cfargument name="docId" type="string" required="Yes" />
    <cfparam name='str' default='' />
    <cfquery  name="avg" datasource="#Application.DataSrc#">
        SELECT DateDiff(pcm.Date_Received, pcm.date_sent) d
        FROM #Request.prefix_db_agency#.pAssessments an
        LEFT OUTER JOIN #Request.prefix_db_agency#.pPatients p on an.Patient_Id = p.Patient_Id  
        LEFT OUTER JOIN #Request.prefix_db_agency#.pAdmit pa on an.Patient_Id = pa.Patient_Id  
        LEFT OUTER JOIN #Request.prefix_db_lookup#.pEmployee e on e.Emp_ID = pa.Case_Manager
        LEFT OUTER JOIN #Request.prefix_db_lookup#.pPhysicians ph on e.Emp_ID = ph.Emp_ID
        LEFT OUTER JOIN #Request.prefix_db_agency#.pCMS4857 pcm on ph.Emp_ID = pcm.Render_Phys_ID  
        WHERE  ph.Phys_ID = '#docId#'
        AND    e.emp_type = 'Physician'
        AND    ph.loc_id = '#agencyId#'
        AND    pcm.Date_Received BETWEEN DATE_SUB(NOW(), INTERVAL 90 DAY) AND NOW()
        AND    an.status = 0
        AND    p.Status < 2
        AND    pa.Status = 0
        AND    ph.Status = 0
    </cfquery>
    <cfoutput>
        SELECT DateDiff(pcm.Date_Received, pcm.date_sent) d
        FROM #Request.prefix_db_agency#.pAssessments an
        LEFT OUTER JOIN #Request.prefix_db_agency#.pPatients p on an.Patient_Id = p.Patient_Id  
        LEFT OUTER JOIN #Request.prefix_db_agency#.pAdmit pa on an.Patient_Id = pa.Patient_Id  
        LEFT OUTER JOIN #Request.prefix_db_lookup#.pEmployee e on e.Emp_ID = pa.Case_Manager
        LEFT OUTER JOIN #Request.prefix_db_lookup#.pPhysicians ph on e.Emp_ID = ph.Emp_ID
        LEFT OUTER JOIN #Request.prefix_db_agency#.pCMS4857 pcm on ph.Emp_ID = pcm.Render_Phys_ID  
        WHERE  ph.Phys_ID = '#docId#'
        AND    e.emp_type = 'Physician'
        AND    ph.loc_id = '#agencyId#'
        AND    pcm.Date_Received BETWEEN DATE_SUB(NOW(), INTERVAL 90 DAY) AND NOW()
        AND    an.status = 0
        AND    p.Status < 2
        AND    pa.Status = 0
        AND    ph.Status = 0
    </cfoutput>
    <cfset dd = -1 />
    <cfset dc = 0 />
    <cfoutput query="avg">
        <cfif dd eq -1>
            <cfset dd = 0 />
        </cfif>
        <cfset dd = dd + avg.d />
        <cfset dc = dc + 1 />
    </cfoutput>
    <cfif dc gt 0>
        <cfset str = NumberFormat((dd / dc)) />
        <cfif str eq 0>
            <cfset str = "same day" />
        <cfelseif str eq 1>
            <cfset str = str & " day" />
        <cfelse>
            <cfset str = str & " days" />
        </cfif>
    <cfelse>
        <cfset str = '' />
    </cfif>
    <cfreturn str />
</cffunction>

</cfcomponent>
