<cfparam name="url.ID" default="0">
<cfparam name="url.assid" default="0">
<cfparam name="url.encautoassmt_id" default="0">
<cfparam name="url.encadmit_id" default="0">
<cfparam name="url.wizrd" default="1">
<cfparam name="form.assessment_type" default="PT Followup">
<cfparam name="form.block_order" default="">
<cfparam name="url.block_order" default="">
<cfset url.encpatid  = encrypt(#url.ID#,#application.enckey#,"AES","Hex") />
<cfset url.encassid  = encrypt(#url.assid#,#application.enckey#,"AES","Hex") />
<cfscript>
    request.general = CreateObject("component","components.general.general").init();
    request.ass     = CreateObject("component","components.general.assessments").init();
    request.soc_wizard = CreateObject("component","components.general.soc_wizard").init();
    get_ass = request.general.get_answers('assessment_type','assessment_form');
    getmess = request.general.get_messages('assessment_form');
    AssForm = request.ass.get_assess(#url.ID#,#url.assid#);
    getparentass = request.ass.get_assess(#url.ID#,#AssForm.parent_id#);
</cfscript>
<cfquery name="asslist" datasource="#Application.DataSrc#">
     SELECT  *  FROM  #Request.prefix_db_agency#.pAssessments
    WHERE Status =  <cfqueryparam cfsqltype="cf_sql_integer" value="0">
    AND Patient_ID =    <cfqueryparam cfsqltype="cf_sql_integer" value="#session.cs.patientid#">
    AND Admit_ID =  <cfqueryparam cfsqltype="cf_sql_integer" value="#AssForm.Admit_ID#">
    ORDER BY F178 DESC
</cfquery>

<cfset assmids = #ValueList(asslist.Assmt_ID)# />
<cfinclude template="assigned_assessments.cfm" >
<cfset empassignedassessment = ValueList(getempass.assesments) />
<cfif getparentass.AutoAssmt_ID NEQ ''>
    <cfset url.encautoassmt_id  = encrypt(#getparentass.AutoAssmt_ID#,#application.enckey#,"AES","Hex") />
</cfif>
<cfif getparentass.Admit_ID NEQ ''>
    <cfset url.encadmit_id  = encrypt(#getparentass.Admit_ID#,#application.enckey#,"AES","Hex") />
</cfif>
<cfinclude template="/patientadmin_new/patient/whisper_fileupload.cfm" />

<!--- Whisper AI PT Follow-up: tabs from assessment_tabs.new_wizard --->
<cfset soc_wizard_assess_type = form.assessment_type />
<cfset soc_tabs_fallback_block_list = "1,2,3" />
<cfinclude template="/patientadmin_new/patient/soc_wizard_tabs_setup_inc.cfm" />
<cfset request.vital_use_inline = true />
<cfif soc_vitals_wizard_block LT 1>
  <cfset soc_vitals_wizard_block = ListFind(block_order, "3") ? 3 : Val(ListLast(block_order)) />
  <cfset soc_wound_upload_step = 1 />
  <cfloop from="1" to="#total_count#" index="_rwi">
    <cfif Int(Val(Trim(ListGetAt(block_order, _rwi, ",")))) EQ soc_vitals_wizard_block>
      <cfset soc_wound_upload_step = _rwi />
    </cfif>
  </cfloop>
</cfif>
<cfif soc_tab_layout_source NEQ "assessment_tabs">
  <cfset soc_simple_tab_names = true />
  <cfif soc_vitals_wizard_block GT 0>
    <cfset soc_block_name_overrides[ToString(soc_vitals_wizard_block)] = "Vitals; Wounds" />
  </cfif>
</cfif>
<cfset soc_wizard_f26_like = "1%" />
<cfset _qsPtFu = IsDefined("CGI.QUERY_STRING") ? CGI.QUERY_STRING : "" />
<cfset _hasWizrdParam = REFindNoCase("(^|[?&])wizrd=", _qsPtFu) GT 0 />
<cfset _hasWizardParam = REFindNoCase("(^|[?&])wizard=", _qsPtFu) GT 0 />
<cfif total_count GT 0 AND _hasWizardParam AND NOT _hasWizrdParam AND StructKeyExists(url, "wizard") AND IsNumeric(Trim(ToString(url.wizard)))>
  <cfset _wFromUrl = Int(Val(Trim(ToString(url.wizard)))) />
  <cfset _wizStep = 0 />
  <cfloop from="1" to="#total_count#" index="_ws">
    <cfif Int(Val(Trim(ListGetAt(block_order, _ws, ",")))) EQ _wFromUrl>
      <cfset _wizStep = _ws />
      <cfbreak />
    </cfif>
  </cfloop>
  <cfif _wizStep GT 0>
    <cfset url.wizrd = _wizStep />
  <cfelseif _wFromUrl GTE 1 AND _wFromUrl LTE total_count>
    <cfset url.wizrd = _wFromUrl />
  </cfif>
</cfif>
<cfif total_count GT 0 AND Val(url.wizrd) GT total_count>
  <cfset url.wizrd = total_count />
</cfif>

<cfquery name="getskillproblem" datasource="#Application.DataSrc#">
    SELECT * FROM #Request.prefix_db_agency#.pProblem
    WHERE (M0_No like 'M1021%' OR M0_No like 'M1023%')
    AND Assmt_ID IN (<cfqueryparam value="#url.assid#" cfsqltype="CF_SQL_INTEGER" list="yes">)
    AND status = 0
    ORDER BY dx_order ASC
</cfquery>

<cfset filepath = "/var/www/datafiles/patientfileupload/" />
<cfif isDefined("Form.ufFile") AND len(Form.ufFile) gt 0>
    <cfparam name="cffile.serverFile" default="">
    <cffile action="uploadall" filefield="#Form.ufFile#" destination="#filepath#" nameconflict="makeunique" mode="777">
    <cfloop index="i" from="1" to="#arraylen(File.UPLOADALLRESULTS)#">
        <cfset filename = File.UPLOADALLRESULTS[i].clientFile />
        <cfset Dup_file_name = DateFormat(Now(),"YYMMDDHHMMSS") & File.UPLOADALLRESULTS[i].clientFile />
        <cfset path = 'Progress_files/agency_' & session.AgencyId />
        <cfif not directoryExists("s3://#Request.bucket_accesskey#:#Request.bucket_secretkey#@#Request.bucket_name#/#path#")>
           <cfdirectory action="create" directory="s3://#Request.bucket_accesskey#:#Request.bucket_secretkey#@#Request.bucket_name#/#path#">
        </cfif>
        <cffile action="move" destination="s3://#Request.bucket_accesskey#:#Request.bucket_secretkey#@#Request.bucket_name#/#path#/#Dup_file_name#"
           source="#filepath##filename#">
           <cfset Duplicate_file_name = Dup_file_name />
           <cfoutput>
            <cfquery name="uFile" datasource="#Application.DataSrc#">
                INSERT IGNORE INTO #Request.prefix_db_agency#.pg_files (
                Agency_Id, Patient_Id, Schedule_ID, Title, FileName, FileType, Dup_file_name, CreatedBy
                ) VALUES (
                '#session.AgencyId#'
                ,'#GetP.Patient_Id#'
                ,'#url.assid#'
                ,'Wounds_assessments'
                ,'#filename#'
                ,'#File.UPLOADALLRESULTS[i].ContentType#/#File.UPLOADALLRESULTS[i].ContentSubType#'
                ,'#Duplicate_file_name#'
                ,'#session.EmployeeId#'
                )
            </cfquery>
           </cfoutput>
    </cfloop>
    <cflocation url="..#CGI.SCRIPT_NAME#?#CGI.QUERY_STRING#&wizrd=#soc_wound_upload_step#" addtoken="no">
</cfif>

<style>
  .soc-primary-tabs { list-style: none; padding: 0; margin: 0 0 10px 0; display: flex; flex-wrap: wrap; gap: 6px; }
  .soc-primary-tab { cursor: pointer; padding: 8px 12px; background: #d1fae5; border: 1px solid #6ee7b7; border-radius: 4px; font-weight: 600; font-size: 12px; color: #14532d; line-height: 1.2; text-align: center; }
  .soc-primary-tab:hover { background: #a7f3d0; border-color: #34d399; color: #064e3b; }
  .soc-primary-tab.active { background: #059669; border-color: #047857; color: #fff; }
  .soc-primary-tab.completed { border-color: #2e9f57; background: #ecfdf5; color: #14532d; }
  .soc-primary-tab.completed.active { background: #047857; border-color: #065f46; color: #fff; }
  .soc-new-block-order-card { background: #f8fafc; border: 1px solid #dbe4ef; border-radius: 8px; padding: 8px 10px; margin-bottom: 10px; }
  .soc-new-block-order-card .soc-new-block-title { color: #334155; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
  .soc-new-questions-well { border-radius: 8px; border: 1px solid #e2e8f0; padding: 14px; margin-top: 4px; }
  .soc-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 8px !important; }
</style>

<div class="portlet light">
  <div class="portlet-title">
    <div class="caption font-red">
      <i class="icon-pin font-red"></i>
      <span class="caption-subject bold uppercase"><cfoutput>#GetP.Pt_Last#, #GetP.Pt_First#</cfoutput> - Add
        <cfoutput>#form.assessment_type#</cfoutput></span>
    </div>
    <div class="actions" style="display:flex;align-items:center;gap:8px;">
      <div class="soc-font-controls" style="display:flex;align-items:center;gap:6px;margin-right:8px;">
        <label style="font-weight:600;color:#334155;margin-right:6px;">Text size</label>
        <button type="button" class="btn btn-sm btn-default soc-font-decrease" aria-label="Decrease text size">A-</button>
        <button type="button" class="btn btn-sm btn-default soc-font-reset" aria-label="Reset text size">A</button>
        <button type="button" class="btn btn-sm btn-default soc-font-increase" aria-label="Increase text size">A+</button>
      </div>
      <a class="btn btn-sm btn-default" onclick="history.back();" href="##">Back</a>
    </div>
  </div>
  <div class="portlet-body form">
    <!--- #10713: Calculate Tinetti / Calculate Tug buttons --->
    <cfset soc_show_balance_calculators = true />
    <cfinclude template="/patientadmin_new/patient/soc_new_wizard_form_inc.cfm" />
  </div>
</div>

<cfoutput>
  <cfset url.Assmt_ID = #url.assid# />
  <cfinclude template="/patientadmin_new/patient/vitalmodal.cfm" />
</cfoutput>

<cfoutput>
  <cfset url.Assmt_ID = #url.assid# />
  <cfinclude template="/patientadmin_new/patient/woundsadd.cfm" />
</cfoutput>

<cfoutput>
  <input type="hidden" name="skilltype" id="skilltype" value="#AssForm.F27#" />
  <input type="hidden" name="diagnosis" id="diagnosis" value="#getskillproblem.recordcount#" />
  <input type="hidden" name="responseValue" id="responseValue" value=""/>
</cfoutput>

<cfinclude template="/patientadmin_new/patient/soc_ot_scripts_inc.cfm" />
