1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3399],{53399:(e,t,i)=>{i.d(t,{createPractitionerPdf:()=>u});var n=i(37876);i(14232);var r=i(52937);let s=r.StyleSheet.create({page:{padding:"78 34 48",fontFamily:"Helvetica",fontSize:9,lineHeight:1.35,color:"#24362f"},header:{position:"absolute",top:22,left:34,right:34,flexDirection:"row",justifyContent:"space-between",alignItems:"center"},logo:{width:99,height:33,objectFit:"contain"},eyebrow:{fontSize:8,color:"#52675d"},title:{fontSize:26,fontFamily:"Helvetica-Bold",marginBottom:10,color:"#285c43"},h2:{fontSize:19,fontFamily:"Helvetica-Bold",marginBottom:10,color:"#285c43"},h3:{fontSize:12,fontFamily:"Helvetica-Bold",marginBottom:7},p:{marginBottom:9},muted:{color:"#52675d",fontSize:8},box:{backgroundColor:"#eff4ee",padding:16,marginVertical:14,borderRadius:5},foot:{position:"absolute",bottom:23,left:34,right:34,flexDirection:"row",justifyContent:"space-between",fontSize:7,color:"#52675d"},row:{flexDirection:"row",borderBottomWidth:.5,borderBottomColor:"#dce5de",paddingVertical:4},th:{backgroundColor:"#eff4ee",fontFamily:"Helvetica-Bold",fontSize:7.5},col:{paddingHorizontal:4},grid:{flexDirection:"row",flexWrap:"wrap",justifyContent:"space-between"},card:{width:"48.5%",borderWidth:.7,borderColor:"#d5dfd6",borderRadius:5,padding:14,marginBottom:14,minHeight:212},label:{fontFamily:"Helvetica-Bold",fontSize:11,marginBottom:7},column:{width:"48.7%"},variantRow:{flexDirection:"row",paddingVertical:2.2,borderBottomWidth:.3,borderBottomColor:"#e1e7e0",fontSize:6.8,lineHeight:1.15},variantHeading:{fontSize:8,fontFamily:"Helvetica-Bold",backgroundColor:"#eff4ee",padding:3,marginTop:4},noCall:{backgroundColor:"#fff4df",color:"#6a4a12"},small:{fontSize:7.5}}),o=new Set(["rs429358","rs7412"]),a=e=>String(e||"").replace(/â²/g,"'").replace(/[ââ]/g,"-").replace(/â¥/g,">=").replace(/â¤/g,"<=").replace(/μ/g,"\xb5").replace(/[â-â]/g,e=>"ââââââ
ââââ".indexOf(e)),l=e=>/^https?:\/\//i.test(e||"")?e:null,d=(e,t)=>Array.from({length:Math.ceil(e.length/t)},(i,n)=>e.slice(n*t,(n+1)*t));function c(e){let{rows:t}=e;return(0,n.jsxs)(r.View,{children:[(0,n.jsxs)(r.View,{style:[s.row,s.th],children:[(0,n.jsx)(r.Text,{style:[s.col,{width:"45%"}],children:"REPORT"}),(0,n.jsx)(r.Text,{style:[s.col,{width:"55%"}],children:"RESULT"})]}),t.map((e,t)=>(0,n.jsxs)(r.View,{style:s.row,wrap:!1,children:[(0,n.jsx)(r.Text,{style:[s.col,{width:"45%"}],children:a(e.name)}),(0,n.jsx)(r.Text,{style:[s.col,{width:"55%"}],children:a("available"===e.status?e.result:"stale_snapshot"===e.unavailableReason?"Refresh required before interpretation":"no_scored_variants"===e.unavailableReason?"NOT TESTED (no scored variants in file)":e.unavailableExplanation)})]},t))]})}function h(e){let{rows:t}=e;return(0,n.jsxs)(r.View,{style:s.column,children:[(0,n.jsx)(r.View,{style:[s.variantRow,s.th],children:["GENE","rsID","GENOTYPE","RISK","GRADE"].map((e,t)=>(0,n.jsx)(r.Text,{style:{width:["23%","28%","25%","11%","13%"][t],paddingHorizontal:2},children:e},e))}),t.map((e,t)=>e.heading?(0,n.jsx)(r.Text,{style:s.variantHeading,children:a(e.heading)},t):(0,n.jsx)(r.View,{style:[s.variantRow,"not_tested"===e.status?s.noCall:{}],wrap:!1,children:[e.gene||"-",e.rsid,"not_tested"===e.status?"NOT TESTED":e.genotype,e.riskAllele||"-",e.grade||"-"].map((e,t)=>(0,n.jsx)(r.Text,{style:{width:["23%","28%","25%","11%","13%"][t],paddingHorizontal:2},children:a(e)},t))},t))]})}function p(e){let{summary:t,logo:i}=e,p=t.reports||[],u={available:p.filter(e=>"available"===e.status),attention:p.filter(e=>"available"===e.status&&"genotype"!==e.resultKind&&["yellow","red"].includes(String(e.tier).toLowerCase())),quiet:p.filter(e=>"available"===e.status&&("genotype"===e.resultKind||!["yellow","red"].includes(String(e.tier).toLowerCase()))),unavailable:p.filter(e=>"unavailable"===e.status),locked:p.filter(e=>"locked"===e.status)},m=function(e){let t=new Map;for(let i of e.filter(e=>"available"===e.status))for(let e of i.labTargets||[]){if(!e.name||!e.target||!["minimum","maximum","range"].includes(e.direction))throw Error("Invalid laboratory target");let n="".concat(e.name,"|").concat(e.target,"|").concat(e.direction);t.has(n)||t.set(n,{...e,reports:[]});let r=t.get(n);r.reports.includes(i.name)||r.reports.push(i.name)}return[...t.values()].sort((e,t)=>
1e.name.localeCompare(t.name)||e.target.localeCompare(t.target))}(p),g=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=[],n=[],r=0,s=()=>{n.length&&i.push(n),n=[],r=0};for(let i of e.filter(e=>"available"===e.status)){let e=(i.variants||[]).filter(e=>!o.has(e.rsid));if(e.length)for(let o of(r+3>t&&s(),n.push({heading:i.name}),r+=1.7,e)){let e=Math.max(1,.75*Math.ceil(String(o.gene||"").length/10));r+e>t&&(s(),n.push({heading:"".concat(i.name," (continued)")}),r+=1.7),n.push(o),r+=e}}return s(),i}(p),x=l(t.reportsUrl)||"https://mygenefood.app/user/reports",y=l(t.guideUrl)||"https://mygenefood.app/report-guide",f=l(t.upgradeUrl)||"https://mygenefood.app/user/upgrade",w=new Date(t.generatedAt).toISOString().slice(0,10),T=e=>{let{title:o,children:a}=e;return(0,n.jsxs)(r.Page,{size:"A4",style:s.page,children:[(0,n.jsxs)(r.View,{fixed:!0,style:s.header,children:[i?(0,n.jsx)(r.Image,{src:i,style:s.logo}):(0,n.jsx)(r.Text,{style:s.h3,children:"Gene Food"}),(0,n.jsx)(r.Text,{style:s.eyebrow,children:t.sample?"FICTIONAL SAMPLE":"YOUR GENETIC REPORT SUMMARY"})]}),o&&(0,n.jsx)(r.Text,{style:s.h2,children:o}),a,(0,n.jsxs)(r.View,{fixed:!0,style:s.foot,children:[(0,n.jsx)(r.Link,{src:x,style:{color:"#285c43"},children:"Full reports in your Gene Food account"}),(0,n.jsx)(r.Text,{render:e=>{let{pageNumber:t,totalPages:i}=e;return"".concat(w," | ").concat(t," / ").concat(i)}})]})]})};return(0,n.jsxs)(r.Document,{title:"Gene Food report summary",author:"Gene Food",subject:"Private genetic report summary",language:"en",children:[(0,n.jsxs)(T,{children:[(0,n.jsx)(r.Text,{style:[s.eyebrow,{marginTop:30,marginBottom:12}],children:"HEALTH & NUTRITION"}),(0,n.jsx)(r.Text,{style:s.title,children:"Your genetic starting point"}),!t.deidentified&&t.patientName&&(0,n.jsx)(r.Text,{style:s.h3,children:a(t.patientName)}),t.sample&&(0,n.jsx)(r.Text,{style:s.p,children:"Fictional results for illustration, including the full Health Intelligence and Environment report library. This is not a patient record. Personal PDFs include only the reports available with that customer's access."}),(0,n.jsxs)(r.View,{style:s.box,children:[(0,n.jsx)(r.Text,{style:s.eyebrow,children:"DIET TYPE"}),(0,n.jsx)(r.Text,{style:[s.title,{marginTop:7,marginBottom:4}],children:a(t.dietType||"Awaiting a complete Diet Type result")}),(0,n.jsx)(r.Text,{children:"A starting template for discussing nutrition, not a diagnosis or a prescription."})]}),(0,n.jsx)(r.Text,{style:s.h3,children:"How to read this report"}),["Start with the result label. Genetic findings are not probabilities of disease or deficiency.","Colors have different meanings across reports. Read each label rather than assuming green always means good.","Genotype-only results describe a marker or marker combination; they are not percentage risks.","Discuss laboratory targets with your clinician. Genetics alone does not confirm a deficiency or diagnosis.","Use the variant evidence and grades for context. B-level and lower grades indicate limited evidence."].map((e,t)=>(0,n.jsxs)(r.Text,{style:s.p,children:[t+1,". ",e]},e)),(0,n.jsxs)(r.View,{style:s.box,children:[(0,n.jsx)(r.Text,{style:s.h3,children:"Private, even without your name"}),(0,n.jsx)(r.Text,{children:"This document contains your genotypes and stays sensitive after your name is removed. Share only with people or services you trust. Do not upload your raw DNA file to an AI."})]}),(0,n.jsxs)(r.Text,{style:s.muted,children:[u.available.length," reports with results |"," ",u.locked.length," not included in your access |"," ",u.unavailable.length," without a usable result"]})]}),d(u.attention,30).map((e,t)=>(0,n.jsxs)(T,{title:"Reports at a glance".concat(t?" (continued)":""),children:[(0,n.jsx)(r.Text,{style:s.p,children:"Read labels first. These results may warrant discussion, not a treatment decision. Grades apply to individual SNPs and appear in the variant evidence, not to whole reports."}),(0,n.jsx)(c,{rows:e})]},"overview-".concat(t))),(u.quiet.length||u.unavailable.length||u.locked.length||!t.hasEnvironmentAccess)>0&&(0,n.jsxs)(T,{title:"No action flagged",children:[(0,n.jsx)(r.Text,{style:s.p,children:"Green and genotype-only results are summarized here. This grouping does not mean you are free of health risks or that genotype results are clinically unimportant."}),(0,n.jsx)(c,{rows:u.quiet}),!!u.unavailable.length&&(0,n.jsxs)(r.View,{style:{marginTop:16},children:[(0,n.jsx)(r.Text,{style:s.h3,children:"Reports without a usable result"}),(0,n.jsx)(c,{rows:u.unavailable}),(0,n.jsx)(r.Text,{style:s.small,children:"NOT TESTED is not a zero result. A result marked REFRESH REQUIRED must be rescored before interpretation."})]}),!!u.locked.length&&(0,n.jsxs)(r.View,{style:{marginTop:16},children:[(0,n.jsx)(r.Text,{style:s.h3,children:"Not included in your access"}),(0,n.jsx)(r.Text,{style:s.p,children:u.locked.map(e=>a(e.name)).join(" / ")}),(0,n.jsx)(r.Link,{src:f,children:"View upgrade options to access these reports"})]}),!t.sample&&!t.hasEnvironmentAccess&&(0,n.jsxs)(r.View,{style:{marginTop:16},children:[(0,n.jsx)(r.Text,{style:s.h3,children:"Environment reports"}
1),(0,n.jsx)(r.Text,{style:s.p,children:"The full Environment collection is not included in your access. Any available previews remain included above."}),(0,n.jsx)(r.Link,{src:l(t.environmentUpgradeUrl)||"https://mygenefood.app/user/upgrade?product=environment",children:"Explore Environment access"})]})]}),d(m,28).map((e,t)=>(0,n.jsxs)(T,{title:"Labs worth discussing with your clinician".concat(t?" (continued)":""),children:[(0,n.jsx)(r.Text,{style:s.p,children:"These are discussion targets, not your measured lab results. Different targets for the same analyte remain separate; ask your clinician which applies."}),(0,n.jsxs)(r.View,{style:[s.row,s.th],children:[(0,n.jsx)(r.Text,{style:[s.col,{width:"29%"}],children:"ANALYTE"}),(0,n.jsx)(r.Text,{style:[s.col,{width:"24%"}],children:"TARGET"}),(0,n.jsx)(r.Text,{style:[s.col,{width:"47%"}],children:"REPORTS"})]}),e.map((e,t)=>(0,n.jsxs)(r.View,{style:[s.row,s.small,{paddingVertical:4}],wrap:!1,children:[(0,n.jsx)(r.Text,{style:[s.col,{width:"29%"}],children:a(e.name)}),(0,n.jsx)(r.Text,{style:[s.col,{width:"24%"}],children:a(e.target)}),(0,n.jsx)(r.Text,{style:[s.col,{width:"47%"}],children:a(e.reports.join(", "))})]},t))]},"labs-".concat(t))),d(u.attention,4).map((e,t)=>(0,n.jsx)(T,{title:"Results to discuss",children:(0,n.jsx)(r.View,{style:s.grid,children:e.map((e,t)=>{var i;return(0,n.jsxs)(r.View,{style:s.card,wrap:!1,children:[(0,n.jsx)(r.Text,{style:s.h3,children:a(e.name)}),(0,n.jsx)(r.Text,{style:s.label,children:a(e.result)}),(0,n.jsx)(r.Text,{style:s.p,children:(e=>{var t,i;let n=a(e.explanation||e.description).replace(/\[\d+\]/g,"").replace(/\s+/g," ").trim(),r=(null==(i=n.match(/^.*?[.!?](?:\s|$)/))||null==(t=i[0])?void 0:t.trim())||n;return r.length<=280?r:r.slice(0,277).replace(/\s+\S*$/,"")+"..."})(e)}),!!(null==(i=e.labTargets)?void 0:i.length)&&(0,n.jsxs)(r.Text,{style:[s.small,s.p],children:["Labs:"," ",a([...new Set(e.labTargets.map(e=>e.name))].join(", ")),". See the lab table for targets."]}),(0,n.jsx)(r.Text,{style:s.muted,children:'Evidence: see this report\'s rows in "Variants behind your results".'})]},t)})})},"cards-".concat(t))),d(g,2).map((e,t)=>(0,n.jsxs)(T,{title:"Variants behind your results",children:[(0,n.jsx)(r.Text,{style:[s.small,{marginBottom:8}],children:"Grouped by report. Risk allele is shown as recorded. NOT TESTED means no usable call, not zero copies. APOE is shown as a call only. A dash means the field is unavailable."}),(0,n.jsx)(r.View,{style:s.grid,children:e.map((e,t)=>(0,n.jsx)(h,{rows:e},t))})]},"variants-".concat(t))),(0,n.jsxs)(T,{title:"Before using AI to interpret this report",children:[(0,n.jsx)(r.Text,{style:s.p,children:"Include this guidance whenever you share report excerpts with an AI."}),["Load is not a disease probability. These are population-level genetic associations, not mechanisms, diagnoses, or individual predictions. Read each result label; do not infer meaning from color.","Use only the genotypes, risk alleles and grades printed here. Never reconstruct missing alleles or APOE markers from memory. NOT TESTED is not zero. Where the grade is B or lower, state that evidence is limited.","Diet Type is a starting template based on selected diet reports and APOE, not the entire SNP list. Do not invent pathway explanations, studies, effect sizes, or associations with another compound or condition.","You may note where two reports appear to conflict, but do not resolve them into a new recommendation. Sodium sensitivity is not overall blood pressure risk; saturated-fat response is not baseline lipoprotein production.","Point to the listed lab tests and a clinician, not a conclusion. Do not diagnose, change medication, or recommend supplement doses. If the report does not cover a question, say so."].map(e=>(0,n.jsx)(r.Text,{style:s.p,children:e},e)),(0,n.jsx)(r.Link,{src:y,style:s.p,children:"Read the full guidance and John O'Connor's note"})]})]})}let u=e=>(0,r.pdf)((0,n.jsx)(p,{summary:e,logo:"/assets/pro/logo.png"})).toBlob()}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.