<cfparam name="client.Loc_ID" default ="0">
<cfparam name="form.Pt_SSN_UK" default ="0">
<cfparam name="form.Status" default ="0">
<cfparam name="form.Pt_Longitude" default ="0">
<cfparam name="form.Pt_Latitude" default ="0">
<cfparam name="form.FIPS_Code" default ="0">
<cfparam name="form.CBSA_Code" default ="0">
<cfparam name="form.UrbanRural" default ="0">
<cfparam name="form.WageIndex" default ="0">
<cfparam name="form.Pt_language" default ="">
<cfparam name="form.Interpreter" default ="">
<cfparam name="form.pat_status" default ="0">
<cfparam name="form.unique_Pt_Agy_ID" default ="0">
<cfparam name="form.Pt_Race" default ="">
<cfparam name="form.M0140_ETHNIC" default ="">
<cfparam name="form.otherallergies" default ="">
<cfparam name="form.Pt_SSN" default ="">
<cfparam name="form.Pt_SSN_UK" default ="0">
<cfparam name="form.Home_Directions" default ="">
<cfparam name="form.other_concerns" default ="">
<cfparam name="form.Email" default ="">
<cfparam name="form.Comments" default ="">
 
<cfset form.Record_Creation_Date = "#Dateformat(Now(),'yyyy-mm-dd')#" />
<cfset form.Record_Created_By = 0 />
<cfset form.Record_Mod_Date = #Now()# />
<cfset form.Record_Mod_By = 0 />
<cfset DoCommit = 1>
<cfset request.general = CreateObject("component","components.general.general").init()>

<cfif form.pat_status EQ 4 >
    <cfset form.status  = form.pat_status />
</cfif>


<cfif form.patid EQ 0 OR form.patid EQ""> 
    <cfset  form.Pt_Zip = form.Pt_Zip1 />
<cfelse>
    <cfset  form.Pt_Zip = form.Pt_Zip1 &'-'&form.Pt_Zip2 />
</cfif>

<cfquery name="getzip" datasource="#Application.DataSrc#">
    select * from zip_cbsa WHERE ZIPCODE = <cfqueryparam VALUE="#Left(form.Pt_Zip,5)#"  cfsqltype="cf_sql_varchar">
</cfquery>
<cfif getzip.recordcount gt 0 >
    <cfif form.patid EQ 0 OR form.patid EQ""> 
        <cfset form.Pt_Latitude = #getzip.LATITUDE# />
        <cfset form.Pt_Longitude = #getzip.LONGITUDE# />
    </cfif>
    <cfset form.FIPS_Code = #getzip.STATEFIPS# & #getzip.COUNTYANSI# />
    <cfset form.CBSA_Code = #getzip.CBSA# />
    <cfset form.UrbanRural = #getzip.UrbanRural# />
    <cfset form.WageIndex = #getzip.WageIndex# />
</cfif>
<cfset id = "agency_"&#session.AgencyID#&"/" />
<cfset filepath = "/var/www/datafiles/Patient_images/"&#id# />

<cfif form.patid EQ 0 OR form.patid EQ""> 
    <cftransaction>
        <cftry> 
            <cfquery  name="getp" datasource="#Application.DataSrc#">
                SELECT IFNULL(MAX(Patient_ID),0)+1 As pPatient_ID FROM #Request.prefix_db_agency#.pPatients 
            </cfquery>
            <cfquery  name="getautop" datasource="#Application.DataSrc#">
                SELECT IFNULL(MAX(AutoPatient_ID),0)+1 As pAutoPatient_ID FROM #Request.prefix_db_agency#.pPatients 
            </cfquery>

            <cfset pPatient_ID =  #getp.pPatient_ID# />
            <cfset pAutoPatient_ID =  #getautop.pAutoPatient_ID# />

            <cfquery name="Insert_patients" datasource="#Application.DataSrc#"  result="result">
               INSERT INTO #Request.prefix_db_agency#.pPatients (Patient_ID,Loc_ID, Status, Pt_Agy_ID, Pt_First, Pt_Middle, Pt_Last, Pt_Suffix, Pt_Street, Pt_City, 
                Pt_State, Pt_Phone, Pt_Zip, Pt_DOB,Pt_Race, M0140_ETHNIC, Pt_Gender, Pt_language,Interpreter, Allergies, 
                Pt_SSN, Pt_SSN_UK, Home_Directions, Specific_Concerns, Email, Comments, Zip_Longitude, Zip_Latitude, Pt_Longitude, Pt_Latitude ,
                FIPS_Code, CBSA_Code, UrbanRural, WageIndex, Record_Creation_Date, Record_Created_By, Record_Mod_Date, 
                Record_Mod_By)
                VALUES
                (   <cfqueryparam VALUE="#pPatient_ID#"  cfsqltype="cf_sql_integer">,
                    <cfqueryparam VALUE="#session.agencyid#"  cfsqltype="cf_sql_integer">,
                    <cfqueryparam VALUE="#form.Status#"  cfsqltype="cf_sql_integer">,
                    <cfif form.unique_Pt_Agy_ID EQ 1>
                        <cfqueryparam VALUE="#pAutoPatient_ID#"  cfsqltype="cf_sql_varchar">,
                    <cfelse>
                        <cfqueryparam VALUE="#form.Pt_Agy_ID#"  cfsqltype="cf_sql_varchar">,
                    </cfif>
                    <cfqueryparam VALUE="#form.Pt_First#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Middle#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Last#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Suffix#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Street#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_City#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_State#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Phone#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Zip#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_DOB#"  cfsqltype="cf_sql_date">,
                    <cfqueryparam VALUE="#form.Pt_Race#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.M0140_ETHNIC#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Gender#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_language#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Interpreter#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.otherallergies#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_SSN#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_SSN_UK#"  cfsqltype="cf_sql_integer">,
                    <cfqueryparam VALUE="#form.Home_Directions#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.other_concerns#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Email#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Comments#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Longitude#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Latitude#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Longitude#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Latitude#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.FIPS_Code#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.CBSA_Code#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.UrbanRural#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.WageIndex#"  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 enc_patid  = encrypt(#pPatient_ID#,#application.enckey#,"AES","Hex") />

            <cfquery  name="Insert_Coding_request" datasource="#Application.DataSrc#">
                    INSERT INTO #Request.prefix_db_lookup#.Coding_Request  (Agency_ID,Request_Date,Last_Name,First_Name,Assessment_Type,
                     Assessment_Date,Assigned_to,Coding_status,Assigned_by,Request_Time,MHCB_Entered,
                     time_requested,Updated_by) 
                    VALUES ('#session.agencyid#','#DateFormat(now(),"yyyy-mm-dd")#',
                        '#form.Pt_Last#','#form.Pt_First#',NULL,NULL,'Melissa','eligibility', '#session.employeeid#',
                        '#TimeFormat(now(), "short")#',#now()#,#now()#,'#Session.employeeid#')
            </cfquery>

            <cfif  session.agencyid NEQ '179'>
                <cfsavecontent variable="body_informations">
                    <cfoutput>
                        Hello Team,<br><br>
                        We got a new <b>eligibility request</b> with below information<br>
                        Agency Name   : <b>#getTimeZone.Agency_Name# (#getTimeZone.Agency_Login#)</b><br>
                        Patient Name  : <b>#form.Pt_First#,#form.Pt_Last#</b><br>
                        Requested Date: <b>#DateFormat(now(),"yyyy-mm-dd")# - #TimeFormat(now(), "short")#</b><br><br><br><br>
                        <i>
                            This is an automated system notification from <a href='https://secure.myhomecarebiz.com/index.cfm'>MyHomeCareBiz.com</a>. Therefore, there is no Unsubscribe option.
                        </i>
                        <br><br><br><br><br><br>
                    </cfoutput>
                </cfsavecontent>
                <cfscript>
                    request.general = CreateObject("component","components.general.general").init();
                    getresult = request.general.SendMail(To="billing@myhomecarebiz.com,coding@myhomecarebiz.com",Subject="Notification for New eligibility Request",Body="'#body_informations#'");
                </cfscript>
            </cfif>

            <cfif getTimeZone.svc_intake_dataentry EQ 1>
                <cfquery  name="Insert_Coding_request" datasource="#Application.DataSrc#">
                        INSERT INTO #Request.prefix_db_lookup#.Coding_Request  (Agency_ID,Request_Date,Last_Name,First_Name,Assessment_Type,
                         Assessment_Date,Assigned_to,Coding_status,Assigned_by,Request_Time,MHCB_Entered,
                         time_requested,Updated_by) 
                        VALUES ('#session.agencyid#','#DateFormat(now(),"yyyy-mm-dd")#',
                            '#form.Pt_Last#','#form.Pt_First#',NULL,NULL,'Melissa','intake_dataentry', '#session.employeeid#',
                            '#TimeFormat(now(), "short")#',#now()#,#now()#,'#Session.employeeid#')
                </cfquery>
            </cfif>

            <cfcatch>
                <cfset DoCommit = 0>
                <cftransaction action="rollback" />
                <cfdump var="#cfcatch#"><cfabort>
            </cfcatch>
        </cftry>
        <cfif DoCommit EQ 1>
            <cftransaction action="commit" />
        </cfif>            
    </cftransaction>  
<cfelse>
     
    <cftransaction>
     <cftry>

        <cfquery name="getpatients" datasource="#Application.DataSrc#"  result="result">
           SELECT * FROM #Request.prefix_db_agency#.pPatients  
           WHERE Status  IN (0,1,4)
           AND  Patient_ID = <cfqueryparam VALUE="#form.patid#"  cfsqltype="cf_sql_integer">
        </cfquery>
        <cfset form.Zip_Longitude = getpatients.Zip_Longitude />
        <cfset form.Zip_Latitude = getpatients.Zip_Latitude />
       <!---  <cfset form.Pt_Longitude = getpatients.Pt_Longitude />
        <cfset form.Pt_Latitude = getpatients.Pt_Latitude /> --->
        <!--- <cfquery name="getzip" datasource="#Application.DataSrc#">
            select * from zip_cbsa WHERE ZIPCODE = <cfqueryparam VALUE="#Left(form.Pt_Zip,5)#"  cfsqltype="cf_sql_varchar">
        </cfquery>
        <cfif getzip.recordcount gt 0 >
            <cfset form.Pt_Latitude = #getzip.LATITUDE# />
            <cfset form.Pt_Longitude = #getzip.LONGITUDE# />
            <cfset form.FIPS_Code = #getzip.STATEFIPS# & #getzip.COUNTYANSI# />
            <cfset form.CBSA_Code = #getzip.CBSA# />
            <cfset form.UrbanRural = #getzip.UrbanRural# />
            <cfset form.WageIndex = #getzip.WageIndex# />
        </cfif> --->

        <cfquery name="update_patients" datasource="#Application.DataSrc#"  result="result">
           UPDATE #Request.prefix_db_agency#.pPatients SET 
           Status   = <cfqueryparam VALUE="3"  cfsqltype="cf_sql_integer">,
           Record_Mod_Date = <cfqueryparam VALUE="#now()#"  cfsqltype="cf_sql_timestamp">,
           Record_Mod_By = <cfqueryparam VALUE="#form.Record_Mod_By#"  cfsqltype="cf_sql_integer">
           WHERE  Loc_ID  = <cfqueryparam VALUE="#session.agencyid#"  cfsqltype="cf_sql_integer">
           AND  Patient_ID = <cfqueryparam VALUE="#form.patid#"  cfsqltype="cf_sql_integer">
        </cfquery>
        <cfset pPatient_ID = form.patid />
        <cfset imagename = #form.patid# & ".jpg" />
        <cfquery name="Insert_patients" datasource="#Application.DataSrc#"  result="result">
               INSERT INTO #Request.prefix_db_agency#.pPatients (Patient_ID,Loc_ID, Status, Pt_Agy_ID,
                Pt_First, Pt_Middle, Pt_Last,
                Pt_Suffix, Pt_Street, Pt_City, Pt_State, Pt_Phone, Pt_Zip, Pt_DOB,Pt_Race, M0140_ETHNIC, Pt_Gender,
                 Pt_language, Interpreter, Allergies, Pt_SSN, Pt_SSN_UK, Home_Directions, Specific_Concerns, Email,
                  Comments, Zip_Longitude, Zip_Latitude, Pt_Longitude, Pt_Latitude,
                   FIPS_Code, CBSA_Code, UrbanRural, WageIndex,FileName, Record_Creation_Date, 
                   Record_Created_By, Record_Mod_Date, Record_Mod_By)
                VALUES
                (   <cfqueryparam VALUE="#pPatient_ID#"  cfsqltype="cf_sql_integer">,
                    <cfqueryparam VALUE="#session.agencyid#"  cfsqltype="cf_sql_integer">,
                    <cfqueryparam VALUE="#form.Status#"  cfsqltype="cf_sql_integer">,
                    <cfqueryparam VALUE="#form.Pt_Agy_ID#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_First#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Middle#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Last#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Suffix#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Street#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_City#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_State#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Phone#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Zip#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_DOB#"  cfsqltype="cf_sql_date">,
                    <cfqueryparam VALUE="#form.Pt_Race#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.M0140_ETHNIC#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Gender#"  cfsqltype="cf_sql_varchar">,
                     <cfqueryparam VALUE="#form.Pt_language#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Interpreter#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.otherallergies#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_SSN#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_SSN_UK#"  cfsqltype="cf_sql_integer">,
                    <cfqueryparam VALUE="#form.Home_Directions#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.other_concerns#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Email#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Comments#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Zip_Longitude#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Zip_Latitude#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Longitude#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.Pt_Latitude#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.FIPS_Code#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.CBSA_Code#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.UrbanRural#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#form.WageIndex#"  cfsqltype="cf_sql_varchar">,
                    <cfqueryparam VALUE="#imagename#"  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>
        <cfif isdefined('Form.ufFile') and Form.ufFile neq ''>
            <cfparam name="cffile.serverFile" default="" />
              

                <cffile action="upload" filefield="Form.ufFile"  destination="#filepath##form.patid#.jpg" nameconflict="overwrite"  >
                <cffile action="readbinary" variable="fileContent" file="#filepath##File.ServerFile#">
            <!---   <cfif File.FileSize gt 50600>   
                    <cfset Form.ufFile="" />
                    <script language='javascript' type='text/javascript'>
                        bootbox.alert('File size exceeds 40kb');
                        window.location.href ="/patientadmin_new/index.cfm?page=patient&ID=<cfoutput>#session.cs.enc_patientid#</cfoutput>&cat=GeneralInformation";
                    </script>
                <cfelse>--->
                    
                         <cfquery name='file_upload' datasource='#Application.DataSrc#'>
                            UPDATE IGNORE  #Request.prefix_db_agency#.pPatients SET
                                FileName = '#form.patid#.jpg'
                            WHERE Patient_ID = <cfqueryparam VALUE="#form.patid#"  cfsqltype="cf_sql_integer">
                            AND Status   != <cfqueryparam VALUE="3"  cfsqltype="cf_sql_integer">
                        </cfquery>
            <!---</cfif>--->
            </cfif>
        <cfcatch>
            <cfset DoCommit = 0>
            <cftransaction action="rollback" />
        </cfcatch>
    </cftry>
    <cfif DoCommit EQ 1>
        <cftransaction action="commit" />
    </cfif>            
</cftransaction>
 <cfset enc_patid  = encrypt(#form.patid#,#application.enckey#,"AES","Hex") />
</cfif>
<cfif form.Status  EQ '2'>
    <cflocation url="#application.siteurl#/patientadmin_new/index.cfm?aMenu=clients&page=search&mmid=2" addtoken="no">   
</cfif>
<cfquery name="getcontact" datasource="#Application.DataSrc#">
      SELECT * FROM #Request.prefix_db_agency#.pPtContacts 
      WHERE Patient_ID =  <cfqueryparam VALUE="#pPatient_ID#"  cfsqltype="cf_sql_integer">
</cfquery>

<cfif getcontact.recordcount EQ 0 >
    <cflocation url="#application.siteurl#/patientadmin_new/index.cfm?page=patient&ID=#enc_patid#&cat=contactaction&CID=0&message=At least one Emergency Contact is required. Please complete below." addtoken="no">
<cfelse>  
    <cflocation url="#application.siteurl#/patientadmin_new/index.cfm?page=patient&ID=#enc_patid#&cat=GeneralInformation" addtoken="no">   
</cfif>


 