{"version":3,"sources":["theme.ts","pages/Login/index.tsx","components/Loader/styles.ts","components/Loader/index.tsx","pages/MyRecords/List/styles.ts","utils/hooks.ts","utils/getChip.tsx","components/Select/index.tsx","components/Snackbar/index.tsx","pages/MyRecords/List/index.tsx","pages/Supervision/List/styles.ts","pages/Supervision/List/index.tsx","pages/Requests/styles.ts","utils/getProgressIcon.tsx","pages/Requests/index.tsx","pages/Records/List/styles.ts","components/Input/index.tsx","components/FileUploader/index.tsx","utils/getValidationErrors.ts","pages/Records/List/index.tsx","components/ExpirationWarning/index.tsx","components/EmptyProgress/index.tsx","pages/Records/Show/index.tsx","pages/Patients/List/styles.ts","pages/Patients/List/index.tsx","components/Checkbox/index.tsx","components/Radio/index.tsx","pages/Forms/Init/index.tsx","pages/Forms/ParentInit/index.tsx","pages/Forms/Adoption/index.tsx","pages/Forms/Update/index.tsx","components/Signatures/index.tsx","pages/Forms/Evalutation/index.tsx","pages/Forms/SocialService/index.tsx","pages/Forms/Parents/index.tsx","pages/Forms/Psychopedagogy/index.tsx","pages/Forms/Discount/index.tsx","pages/Forms/Diagnosis/index.tsx","pages/Forms/Psychiatric/index.tsx","pages/Forms/QuarterPlan/index.tsx","pages/Forms/Forward/index.tsx","pages/Forms/FoodForward/index.tsx","pages/Forms/GroupForward/index.tsx","pages/Forms/ClinicForward/index.tsx","pages/Forms/Closure/index.tsx","pages/Signature/index.tsx","pages/Settings/index.tsx","pages/Forms/Screening/index.tsx","pages/Forms/BabyScreening/index.tsx","pages/Forms/Evolution/index.tsx","pages/Forms/Hosting/index.tsx","pages/Forms/NutritionEvolution/index.tsx","pages/Forms/PsychiatryEvolution/index.tsx","pages/Forms/ConsultantRequest/index.tsx","pages/Forms/Declaration/index.tsx","pages/NotAuthorized/index.tsx","routes/privateRoute.tsx","routes/index.tsx","keycloak.ts","components/Header/styles.ts","components/Header/index.tsx","assets/Ceapia-02.png","components/TabPanel/index.tsx","components/Navbar/styles.ts","components/Navbar/index.tsx","App.tsx","index.tsx"],"names":["theme","createMuiTheme","palette","primary","main","light","secondary","error","red","A700","success","info","background","default","LoginPage","currentLocationState","useLocation","state","from","pathname","keycloak","useKeycloak","login","useCallback","useEffect","authenticated","to","useStyles","makeStyles","createStyles","backdrop","zIndex","drawer","color","Loader","loading","classes","Backdrop","className","open","CircularProgress","table","minWidth","pagination","display","filter","marginTop","marginBottom","item","paddingRight","StyledTableCell","withStyles","root","backgroundColor","TableCell","useAxios","baseURL","process","axiosInstance","useRef","initialized","token","current","axios","create","headers","Authorization","undefined","getChip","label","Chip","icon","Attachment","style","fontWeight","Done","green","Language","blue","Close","AccessTime","yellow","Reviews","Archive","getFileChip","mimetype","originalName","path","func","variant","onClick","clickable","CropOriginal","Image","PictureAsPdf","Description","Select","name","isMulti","rest","selectRef","useField","fieldName","defaultValue","registerField","menuPortal","provided","menu","option","styles","isSelected","borderBottom","control","borderColor","isFocused","ref","getValue","value","map","isSearchable","classNamePrefix","Alert","type","message","onClose","useState","setOpen","handleClose","event","reason","Snackbar","autoHideDuration","anchorOrigin","vertical","horizontal","elevation","severity","MyRecords","history","useHistory","api","myRecords","setMyRecords","setLoading","page","setPage","rowsPerPage","setRowsPerPage","formRef","date","setDate","patients","setPatients","numbers","setNumbers","filters","setFilters","status","patient","number","filterTypes","setFilterTypes","isActive","alert","setAlert","a","get","myRecordsResponse","data","record","_id","String","getMyRecords","handleFilters","moment","format","initialData","onSubmit","Grid","container","xs","placeholder","isClearable","onChange","e","options","LocalizationProvider","dateAdapter","AdapterDateFns","DesktopDatePicker","inputFormat","d","renderInput","params","TextField","TableContainer","component","Paper","Table","TableHead","TableRow","align","TableBody","length","scope","colSpan","Typography","slice","patient2","updatedAt","IconButton","push","Visibility","TablePagination","rowsPerPageOptions","count","labelRowsPerPage","labelDisplayedRows","onPageChange","newPage","onRowsPerPageChange","target","body","fontSize","Supervision","supervisions","setSupervisions","supervisionsResponse","getSupervisions","Tooltip","title","professional","join","formTitles","alignItems","paper","padding","content","opposite","maxWidth","progressTypeIcons","adoption","FamilyRestroom","declaration","IntegrationInstructions","update","UploadFile","foodForward","Restaurant","groupForward","Group","clinicForward","DirectionsWalk","consultantRequest","evolution","ArrowUpward","monthlyEvolution","register","PersonAddOutlined","init","OpenInBrowser","parentInit","EscalatorWarning","screening","AssignmentIndOutlined","babyScreening","hosting","HouseOutlined","assessment","AssessmentOutlined","review","RateReviewOutlined","forwarding","ArrowForward","socialService","SocialDistance","parents","psychopedagogy","Psychology","closure","discount","MoneyOff","diagnosis","psychiatric","Assignment","quarterplan","Event","monthlyNutritionEvolution","psychiatryEvolution","inactivateRecord","Cancel","RequestTypes","init_form","parent_init_form","TypeToUrl","resource_id","eventToTitle","eventToIcon","HourglassEmpty","eventToColor","colors","Requests","requests","setRequests","formHistory","setFormHistory","anchorEl","setAnchorEl","idToApp","setIdToApp","openMenu","Boolean","link","setLink","linkOpen","setLinkOpen","openCloseRecord","setOpenCloseRecord","openUpdateRecord","setOpenUpdateRecord","historyOpen","setHistoryOpen","recordId","setRecordId","recordNumber","setRecordNumber","recordNumbers","setRecordNumbers","proUsers","setProUsers","coordUsers","setCoordUsers","professionals","setProfessionals","coordinators","setCoordinators","formFilterRef","requestsResponse","getRequests","resetAlert","handleReview","id","patch","index","currentRequests","findIndex","handleArchive","handleOpenApprove","usersResponse","user","attributes","coordenador","firstName","lastName","handleDirectApprove","requestId","response","handleApprove","Error","professional_id","pro","coord","handleLinkClose","handleCloseRecord","handleHistoryClose","handleOpenHistory","formId","historyResponse","handleClickLinkOpen","post","linkResponse","form","handleSubmitCloseRecord","handleOpenUpdateRecord","recordResponse","handleCloseUpdateRecord","Menu","MenuListProps","MenuItem","ListItemIcon","Divider","Dialog","aria-labelledby","DialogTitle","DialogContent","href","DialogActions","Button","fullWidth","entry","TimelineItem","TimelineOppositeContent","TimelineSeparator","TimelineDot","TimelineContent","minHeight","spacing","FormLabel","closeMenuOnSelect","list","menuPosition","find","Number","aria-controls","aria-haspopup","aria-expanded","startIcon","Link","currentTarget","request","History","includes","aria-label","Check","input","Input","isMultiline","rows","manualError","inputRef","multiline","helperText","inputProps","margin","faceImage","formLabel","FileUploader","handleFileId","initialFiles","files","setFiles","handleCapture","file","formData","FormData","append","fileResponse","htmlFor","getValidationErrors","err","validationErrors","inner","forEach","Records","users","setUsers","fileIds","setFileIds","records","setRecords","filterPatients","setFilterPatients","handleFile","fileId","handleClickOpen","patientsResponse","handleSubmit","setErrors","schema","Yup","shape","required","supervisor_id","responsibles","of","relation","teams","action","validate","abortEarly","supervisor","u","newRecord","p","errors","recordsResponse","getRecords","AddCircle","Math","floor","random","autoFocus","card","cardContent","marginRight","subtitle","ExpirationWarning","Card","CardContent","secondaryTail","EmptyProgress","timelineContainer","borderBottomLeftRadius","borderBottomRightRadius","timeline","textTransform","button","editButton","width","marginLeft","noteButton","notes","filterHeader","titleGrid","borderTopRightRadius","borderTopLeftRadius","chiplink","textDecoration","FormTypeToUrl","TypeToTitle","ShowRecord","setInitialFiles","professionalIds","setProfessionalIds","coordIds","setCoordIds","openProgress","setOpenProgress","openEditProgress","setOpenEditProgress","openNote","setOpenNote","openEditNote","setOpenEditNote","setProgressId","formEditRef","useParams","fileData","setFileData","setRecord","progress","setProgress","editProgress","setEditProgress","editNote","setEditNote","authors","setAuthors","author_id","React","progressResponse","aluno","currentAuthors","progressItem","author","result","self","m","getRecordData","handleClickPrint","handleClickReopen","currentRecord","newProgress","handleCloseEditProgress","handleCloseProgress","handleCloseFile","fileBlob","URL","revokeObjectURL","handleCloseNote","handleCloseEditNote","handleSubmitProgress","getNewProgress","handleSubmitEditProgress","progressIdx","currentProgress","handleSubmitApproveProgress","progressId","approvedProgress","handleSubmitDeleteProgress","delete","handleSubmitApproveNote","note","updatedProgressLit","handleSubmitNote","destination_id","handleSubmitEditNote","handleProfessionalSelect","operation","recordCoords","totalLength","allProsIds","proIdToAdd","proIdToRemove","newProsList","handleCoordSelect","recordPros","coordIdToAdd","coordIdToRemove","handleSupervisorSelect","handleDownload","formatPath","split","filePath","fileName","fileType","responseType","then","blob","createObjectURL","catch","diff","justifyContent","height","justify","ArrowBack","goBack","disabled","Print","subject","isDisabled","base","Timeline","data-test","createdAt","TimelineConnector","borderStyle","approved","opacity","realmAccess","roles","RealmRoles","ADMIN","Edit","originalname","size","handleOpenEditProgress","Delete","handleOpenNote","forms","saved","handleOpenEditNote","searchArea","searchButton","searchInput","Patients","document","setDocument","setName","editPatient","setEditPatient","openEditPatient","setOpenEditPatient","openPatient","setOpenPatient","getPatients","handleClosePatient","handleCloseEditPatient","handleSearchPatient","aux","handleSubmitPatient","document_type","oneOf","email","birth","newPatient","handleSubmitEditPatient","patientIdx","currentPatients","handleOpenEditPatient","patientResponse","CloudDownload","console","log","Stack","flexDirection","marginY","Search","toUpperCase","add","Checkbox","checked","clearValue","setValue","valuee","FormControlLabel","defaultChecked","defaultProps","Radio","inputRefs","refs","labelPlacement","flexWrap","formControl","divider","InitForm","setForm","formResponse","getInitFormData","answers","observations","FormControl","RadioGroup","row","toString","idx","AdoptionForm","UpdateForm","signature","Signature","formAnswers","onSignature","signatures","setSignatures","password","setPassword","passwordError","setPasswordError","handleSubmitSignature","min","max","passwordToSend","userSignature","signaturesToSave","url","handleCancelSignature","currentSignatures","renderDialog","Create","src","alt","maxHeight","ReviewForm","formRequest","Signatures","SocialServiceForm","Date","toDate","ParentsForm","setBirth","PsychopedagogyForm","DiscountForm","authDate","setAuthDate","DiagnosisForm","PsychiatricForm","QuarterForm","reviewDate","setReviewDate","treatmentInit","setTreatmentInit","reviewAt","setReviewAt","ForwardForm","to_professional","to_professional_id","FoodForwardForm","GroupForwardForm","ClinicForwardForm","ClosureForm","img","warning","typogra","boards","form2Ref","showPass","setShowPass","openCreatePass","setOpenCreatePass","openUpdatePass","setOpenUpdatePass","hasSignature","setHasSignature","hasSignaturePassword","setHasSignaturePassword","setSignature","hasSignatureResponse","signatureResponse","hasSignaturePasswordResponse","userHasSignature","handleSignature","file_id","handleCloseCreatePass","handleCloseUpdatePass","handleProfessionalData","currentSignature","handleSubmitCreatePass","matches","handleSubmitUpdatePass","new_password","old_password","Container","maxLength","Warning","orientation","stringPassword","numLength","replace","getPassword","VisibilityOff","select","paddingTop","Settings","setting","setSetting","settingResponse","getSettings","user_id","s","handlePreceptorSelect","preceptor","preceptor_id","formSubTitles","groupTitle","historyItems","symtomsList","groupName","groupLabel","subGroups","hypotesisList","ScreeningForm","screeningFormRef","date_social","setDateSocial","patient_birth","setPatientBirth","date_socal","handleSave","social_date","handleSubmitScreening","group","subgroup","outline","hypotesistList2","hypotesistList3","hypotesistList4","hypotesistList5","BabyScreeningForm","renderList","EvolutionForm","dateGrid","NutritionEvolutionForm","PsychiatryEvolutionForm","ConsultantRequestForm","DeclarationForm","NotAuthorized","PrivateRoute","Component","hasRole","role","useMemo","hasRealmRole","useHasRealmRole","render","props","isTokenExpired","location","AppRouter","exact","InitialForm","ParentInitialForm","PROFESSIONAL","SupervisionList","SUPERVISOR","APPROVER","RecordsList","RecordsDetail","EvaluationForm","Screening","BabyScreening","Evolution","Hosting","NutritionEvolution","PsychiatryEvolution","PatientsList","RESEARCH","Keycloak","realm","clientId","keycloakConfig","onLoad","checkLoginIframe","grow","flexGrow","toolbar","menuButton","sectionDesktop","breakpoints","up","sectionMobile","logo","avatar","notificationsMenu","notificationItem","notifications","notificationsEnd","iconButton","position","right","top","transform","menuItemLink","Header","setNotifications","mobileMoreAnchorEl","setMobileMoreAnchorEl","notificationAnchorEl","setNotificationAnchorEl","isMenuOpen","isMobileMenuOpen","isNotificationMenuOpen","notificationsResponse","notification","read","getNotifications","handleMobileMenuClose","handleReadNotification","notificationId","notificationIdx","currentNotifications","n","renderMenu","getContentAnchorEl","keepMounted","transformOrigin","logout","ExitToApp","renderMobileMenu","renderNotificationMenu","MenuList","ListItem","secondaryAction","edge","ListItemText","ThumbUpAlt","AppBar","Toolbar","placement","Badge","badgeContent","NotificationsActive","Notifications","idTokenParsed","preferred_username","Avatar","TabPanel","children","LinkTab","Tab","tabs","Navbar","mainTabValue","setMainTabValue","recordTabValue","setRecordTabValue","Tabs","newValue","indicatorColor","FileCopySharp","SupervisorAccount","Approval","Person","App","authClient","onEvent","onTokens","tokens","initOptions","ThemeProvider","appTheme","CssBaseline","ReactDOM","StrictMode","getElementById"],"mappings":"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BAIb,CACEiuB,UAAW,iBACXC,WAAY,0CACZC,UAAW,CACT,CACEvsB,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,UACN5B,MAAO,WAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,iBACN5B,MAAO,kBAET,CACE4B,KAAM,qBACN5B,MAAO,wBAIb,CACEiuB,UAAW,kBACXC,WAAY,wBACZC,UAAW,CACT,CACEvsB,KAAM,+BACN5B,MAAO,gCAET,CACE4B,KAAM,kBACN5B,MAAO,sBAET,CACE4B,KAAM,wBACN5B,MAAO,+BAET,CACE4B,KAAM,wBACN5B,MAAO,8BAIb,CACEiuB,UAAW,oBACXC,WAAY,mDACZC,UAAW,CACT,CACEvsB,KAAM,aACN5B,MAAO,oBAET,CACE4B,KAAM,YACN5B,MAAO,mBAET,CACE4B,KAAM,8BACN5B,MAAO,qCAET,CACE4B,KAAM,qBACN5B,MAAO,sBAET,CACE4B,KAAM,qBACN5B,MAAO,wBAIb,CACEiuB,UAAW,qBACXC,WAAY,0DACZC,UAAW,CACT,CACEvsB,KAAM,qCACN5B,MAAO,oBAET,CACE4B,KAAM,UACN5B,MAAO,WAET,CACE4B,KAAM,WACN5B,MAAO,cAIb,CACEiuB,UAAW,qBACXC,WAAY,0BACZC,UAAW,CACT,CACEvsB,KAAM,yBACN5B,MAAO,0BAET,CACE4B,KAAM,UACN5B,MAAO,WAET,CACE4B,KAAM,SACN5B,MAAO,UAET,CACE4B,KAAM,iBACN5B,MAAO,kBAET,CACE4B,KAAM,sCACN5B,MAAO,+CAIb,CACEiuB,UAAW,iBACXC,WAAY,gDACZC,UAAW,CACT,CACEvsB,KAAM,YACN5B,MAAO,gBAET,CACE4B,KAAM,eACN5B,MAAO,sCAIb,CACEiuB,UAAW,uBACXC,WAAY,8BACZC,UAAW,CACT,CACEvsB,KAAM,SACN5B,MAAO,UAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,wCACN5B,MAAO,yCAET,CACE4B,KAAM,eACN5B,MAAO,kBAIb,CACEiuB,UAAW,iBACXC,WAAY,gBACZC,UAAW,CACT,CACEvsB,KAAM,SACN5B,MAAO,UAET,CACE4B,KAAM,aACN5B,MAAO,+BAET,CACE4B,KAAM,gBACN5B,MAAO,uBAET,CACE4B,KAAM,oBACN5B,MAAO,0BAIb,CACEiuB,UAAW,mBACXC,WAAY,0CACZC,UAAW,CACT,CACEvsB,KAAM,YACN5B,MAAO,0CAET,CACE4B,KAAM,YACN5B,MAAO,aAET,CACE4B,KAAM,YACN5B,MAAO,aAET,CACE4B,KAAM,cACN5B,MAAO,qBAET,CACE4B,KAAM,iBACN5B,MAAO,kBAET,CACE4B,KAAM,uBACN5B,MAAO,0BAIb,CACEiuB,UAAW,gBACXC,WAAY,mCACZC,UAAW,CACT,CACEvsB,KAAM,cACN5B,MAAO,kBAET,CACE4B,KAAM,oBACN5B,MAAO,qBAET,CACE4B,KAAM,iBACN5B,MAAO,kBAET,CACE4B,KAAM,cACN5B,MAAO,eAET,CACE4B,KAAM,eACN5B,MAAO,qBAIb,CACEiuB,UAAW,uBACXC,WAAY,uCACZC,UAAW,CACT,CACEvsB,KAAM,0BACN5B,MAAO,2BAET,CACE4B,KAAM,oBACN5B,MAAO,qBAET,CACE4B,KAAM,aACN5B,MAAO,cAET,CACE4B,KAAM,OACN5B,MAAO,QAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,SACN5B,MAAO,UAET,CACE4B,KAAM,uBACN5B,MAAO,0BAIb,CACEiuB,UAAW,sBACXC,WAAY,sDACZC,UAAW,CACT,CACEvsB,KAAM,4CACN5B,MAAO,6CAET,CACE4B,KAAM,WACN5B,MAAO,cAIb,CACEiuB,UAAW,qBACXC,WAAY,uEACZC,UAAW,CACT,CACEvsB,KAAM,UACN5B,MAAO,WAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,8BACN5B,MAAO,kCAET,CACE4B,KAAM,iCACN5B,MAAO,oCAIb,CACEiuB,UAAW,qBACXC,WAAY,0BACZC,UAAW,CACT,CACEvsB,KAAM,0BACN5B,MAAO,+CAET,CACE4B,KAAM,kCACN5B,MAAO,iDAIb,CACEiuB,UAAW,mBACXC,WAAY,iEACZC,UAAW,CACT,CACEvsB,KAAM,iBACN5B,MAAO,kBAET,CACE4B,KAAM,sBACN5B,MAAO,uBAET,CACE4B,KAAM,uBACN5B,MAAO,8BAET,CACE4B,KAAM,sCACN5B,MAAO,uCAET,CACE4B,KAAM,yBACN5B,MAAO,gCAET,CACE4B,KAAM,cACN5B,MAAO,qBAET,CACE4B,KAAM,WACN5B,MAAO,iBAIb,CACEiuB,UAAW,uBACXC,WAAY,qDACZC,UAAW,CACT,CACEvsB,KAAM,sBACN5B,MAAO,iFAET,CACE4B,KAAM,aACN5B,MAAO,cAET,CACE4B,KAAM,oCACN5B,MAAO,gDAIb,CACEiuB,UAAW,uBACXC,WAAY,6CAEd,CACED,UAAW,gBACXC,WAAY,0CACZC,UAAW,CACT,CACEvsB,KAAM,UACN5B,MAAO,cAET,CACE4B,KAAM,0BACN5B,MAAO,2BAET,CACE4B,KAAM,eACN5B,MAAO,gBAET,CACE4B,KAAM,iBACN5B,MAAO,kBAET,CACE4B,KAAM,aACN5B,MAAO,iBAET,CACE4B,KAAM,eACN5B,MAAO,kBAIb,CACEiuB,UAAW,mBACXC,WAAY,sBACZC,UAAW,CACT,CACEvsB,KAAM,UACN5B,MAAO,cAET,CACE4B,KAAM,UACN5B,MAAO,WAET,CACE4B,KAAM,YACN5B,MAAO,aAET,CACE4B,KAAM,WACN5B,MAAO,kBAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,QACN5B,MAAO,SAET,CACE4B,KAAM,cACN5B,MAAO,eAET,CACE4B,KAAM,WACN5B,MAAO,cAIb,CACEiuB,UAAW,sBACXC,WAAY,mEACZC,UAAW,CACT,CACEvsB,KAAM,mCACN5B,MAAO,6CAET,CACE4B,KAAM,2BACN5B,MAAO,4BAET,CACE4B,KAAM,OACN5B,MAAO,QAET,CACE4B,KAAM,mCACN5B,MAAO,oCAET,CACE4B,KAAM,SACN5B,MAAO,aAET,CACE4B,KAAM,uBACN5B,MAAO,2BAET,CACE4B,KAAM,+BACN5B,MAAO,wCAIb,CACEiuB,UAAW,qBACXC,WAAY,yBACZC,UAAW,CACT,CACEvsB,KAAM,8BACN5B,MAAO,kCAET,CACE4B,KAAM,8CACN5B,MAAO,qDAMTouB,GAAgB,CACpB,CACExsB,KAAM,UACN5B,MAAO,4EAET,CACE4B,KAAM,UACN5B,MACE,mFAEJ,CACE4B,KAAM,UACN5B,MACE,mFAEJ,CACE4B,KAAM,UACN5B,MAAO,6CAET,CACE4B,KAAM,UACN5B,MACE,oFAEJ,CACE4B,KAAM,UACN5B,MACE,uFAEJ,CACE4B,KAAM,UACN5B,MACE,mHAEJ,CACE4B,KAAM,UACN5B,MAAO,4BAET,CACE4B,KAAM,UACN5B,MAAO,2DAET,CACE4B,KAAM,UACN5B,MACE,oHAEJ,CACE4B,KAAM,WACN5B,MAAO,+CAET,CACE4B,KAAM,MACN5B,MACE,oGA8iCSquB,GA1iCiB,WAC9B,IAAM9pB,EAAMrF,KACNnB,EAAUT,KACV+G,EAAUC,cAHoB,EAIZd,oBAAS,GAJG,mBAI7BtF,EAJ6B,KAIvBuF,EAJuB,OAKND,oBAAS,GALH,mBAK7B1F,EAL6B,KAKpB4G,EALoB,KAM9B4pB,EAAmBhvB,iBAAoB,MANT,EAOJkE,mBAAwB,IAPpB,mBAO7B2M,EAP6B,KAOnBC,EAPmB,OAQA5M,mBAAwB,IARxB,mBAQ7B6M,EAR6B,KAQjBC,EARiB,OASA9M,mBAA0B,IAT1B,mBAS7BikB,EAT6B,KASjBC,EATiB,OAWZlkB,mBAA2B,MAXf,mBAW7BsP,EAX6B,KAWvB2T,EAXuB,OAYRjjB,mBAAwB,MAZhB,mBAY7B4C,EAZ6B,KAYrBwW,EAZqB,OAaZpZ,mBAAS,IAAIylB,MAbD,mBAa7BjkB,EAb6B,KAavBC,EAbuB,OAcCzB,mBAAS,IAAIylB,MAdd,mBAc7BsF,EAd6B,KAchBC,GAdgB,QAeKhrB,mBAAS,IAAIylB,MAflB,qBAe7BwF,GAf6B,MAedC,GAfc,SAgBMlrB,mBAAwB,IAhB9B,qBAgB7B+M,GAhB6B,MAgBdC,GAhBc,SAiBIhN,mBAAwB,IAjB5B,qBAiB7BiN,GAjB6B,MAiBfC,GAjBe,SAmBb+L,cAAfzL,GAnB4B,GAmB5BA,GAAIyB,GAnBwB,GAmBxBA,OAEN1N,GAAUzF,iBAAoB,MArBA,GAuBVkE,mBAExB,CACAqC,UAAU,EACVxC,KAAM,OACNC,QAAS,SA5ByB,qBAuB7BwC,GAvB6B,MAuBtBC,GAvBsB,MA+BpC5I,qBAAU,WAAM,4CACd,kCAAA6I,EAAA,yFAEiCzB,EAAI9E,eAFrC,aAEiC,EAAawG,IAAb,mBAA6B+K,KAF9D,UAEUiC,EAFV,OAGI2J,EAAS,OAAC3J,QAAD,IAACA,OAAD,EAACA,EAAgB9M,OAEtBsM,GALR,2CAMiClO,EAAI9E,eANrC,aAMiC,EAAawG,IAAb,iBAA2BwM,KAN5D,QAOM,QADMiU,EANZ,cAOM,IAAIA,OAAJ,EAAIA,EAAcvgB,OAChBlB,GACc,OAAZyhB,QAAY,IAAZA,OAAA,EAAAA,EAAcvgB,KAAKygB,QAAQ5hB,MACvByB,IAAM,OAACigB,QAAD,IAACA,OAAD,EAACA,EAAcvgB,KAAKygB,QAAQ5hB,MAAMkkB,SACxC,IAAID,OAGZ,OAAIvC,QAAJ,IAAIA,OAAJ,EAAIA,EAAcvgB,OAChBqoB,IACc,OAAZ9H,QAAY,IAAZA,OAAA,EAAAA,EAAcvgB,KAAKygB,QAAQ+H,YACvBloB,IAAM,OAACigB,QAAD,IAACA,OAAD,EAACA,EAAcvgB,KAAKygB,QAAQ2H,aAAarF,SAC/C,IAAID,OAGZ,OAAIvC,QAAJ,IAAIA,OAAJ,EAAIA,EAAcvgB,OAChBuoB,IACc,OAAZhI,QAAY,IAAZA,OAAA,EAAAA,EAAcvgB,KAAKygB,QAAQ6H,eACvBhoB,IAAM,OAACigB,QAAD,IAACA,OAAD,EAACA,EAAcvgB,KAAKygB,QAAQ6H,eAAevF,SACjD,IAAID,MAGZxC,EAAO,OAACC,QAAD,IAACA,OAAD,EAACA,EAAcvgB,OAGR,OAAZugB,QAAY,IAAZA,OAAA,EAAAA,EAAcvgB,KAAKygB,WAAnB,OACAF,QADA,IACAA,OADA,EACAA,EAAcvgB,KAAKygB,QAAQa,aAE3BC,EAAa,OAAChB,QAAD,IAACA,OAAD,EAACA,EAAcvgB,KAAKygB,QAAQa,YAlCjD,0DAsCI1hB,GAAS,CACPF,UAAU,EACVxC,KAAM,QACNC,QAAS,oCAzCf,yBA4CIoB,GAAW,GA5Cf,8EADc,uBAAC,WAAD,wBAiDdqZ,KACC,CAACxZ,EAAKyM,GAAIyB,KAEb,IAAM3B,GAAa,WACjB/K,GAAS,CACPF,UAAU,EACVxC,KAAM,OACNC,QAAS,UAIP2U,GAAkB/a,sBAAW,sBAAC,8BAAA8I,EAAA,6DAClCtB,GAAW,GACXoM,KAFkC,4BAKJvM,EAAI9E,eALA,aAKJ,EAAawG,IAAI,UALb,QAOhC,QAFMsL,EAL0B,cAOhC,IAAIA,OAAJ,EAAIA,EAAepL,QACjBiK,EACEmB,EAAcpL,KACX3H,QACC,SAACgT,GAAD,OACGA,EAAKC,YACLD,EAAKC,aAAeD,EAAKC,WAAWC,eAExCzO,KAAI,SAACuO,GAAD,MAAiB,CACpBxO,MAAOwO,EAAKR,GACZhR,MAAM,GAAD,OAAKwR,EAAKG,UAAV,YAAuBH,EAAKI,eAIvCtB,EACEiB,EAAcpL,KACX3H,QACC,SAACgT,GAAD,OACEA,EAAKC,YACLD,EAAKC,WAAWC,aACmB,SAAnCF,EAAKC,WAAWC,YAAY,MAE/BzO,KAAI,SAACuO,GAAD,MAAiB,CACpBxO,MAAOwO,EAAKR,GACZhR,MAAM,GAAD,OAAKwR,EAAKG,UAAV,YAAuBH,EAAKI,gBAKzC7L,GAAS,CACPF,UAAU,EACVxC,KAAM,UACNC,QAAS,kDAvCqB,kDA0ChCyC,GAAS,CACPF,UAAU,EACVxC,KAAM,QACNC,QAAS,4BA7CqB,yBAgDhCG,GAAQ,GACRiB,GAAW,GAjDqB,6EAmDjC,CAACH,IAEEb,GAAc,WAClBD,GAAQ,IAGJmrB,GAAa1xB,sBAAW,uCAC5B,WAAOiJ,GAAP,yBAAAH,EAAA,kEAEItB,GAAW,GACXoM,KACA2V,EAAQ,2BAAK3T,GAAN,IAAY8T,QAASzgB,KAC5B,UAAApB,GAAQtF,eAAR,SAAiB2Y,UAAU,IAO3BjS,EAAKnB,KAAOyB,IAAOzB,GAAM0B,OAAO,cAChCP,EAAKsoB,cAAgBhoB,IAAOgoB,IAAe/nB,OAAO,cAC9CP,EAAKooB,cACPpoB,EAAK0oB,YAAcpoB,IAAOzB,GAAM0B,OAAO,eAEnCoiB,EAAc,CAClBzlB,KAAM,YACN4G,MAAO,+BAEP7D,OAAM,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAQC,IAChBugB,QAAQ,2BAAMzgB,GAAP,IAAashB,iBAGlBhV,GAzBR,4CA0BYlO,EAAI9E,eA1BhB,aA0BY,EAAawR,MAAb,iBAA6BwB,IAAUqW,GA1BnD,2DA4BYvkB,EAAI9E,eA5BhB,aA4BY,EAAamT,KAAK,SAAUkW,GA5BxC,QA+BIrC,EAAQ,2BAAK3T,GAAN,IAAY8T,QAASzgB,KAE5BJ,GAAS,CACPF,UAAU,EACVxC,KAAM,UACNC,QAAS,+BApCf,kDAuCQ,gBAAiBgV,MACbe,EAASpC,GAAoB,EAAD,IAElC,UAAAlS,GAAQtF,eAAR,SAAiB2Y,UAAUiB,IAE3BtT,GAAS,CACPF,UAAU,EACVxC,KAAM,QACNC,QAAS,4BA/CjB,yBAmDIoB,GAAW,GAnDf,6EAD4B,sDAuD5B,CAACH,EAAK6B,EAAQqoB,GAAehc,GAAQzN,EAAM8N,EAAM2U,IAG7CqH,GAAwB5xB,sBAAW,sBAAC,4BAAA8I,EAAA,kEAEtC8K,KACKP,GAAcjI,QAAWmI,GAAanI,OAHL,sBAI9B,IAAI2J,MAAM,mCAJoB,iCAOhC1N,EAAI9E,eAP4B,aAOhC,EAAawR,MAAb,mBAA+BD,IAAM,CACzCkB,gBAAgB,GAAD,oBACV3B,GAActN,KAAI,SAACkP,GAAD,OAASA,EAAInP,UADrB,aAEVyN,GAAaxN,KAAI,SAACmP,GAAD,OAAWA,EAAMpP,WAEvCkH,aAAa,GAAD,oBACPqG,GAActN,KAAI,SAACkP,GAAD,OAASA,EAAInS,UADxB,aAEPyQ,GAAaxN,KAAI,SAACmP,GAAD,OAAWA,EAAMpS,aAdH,OAkBtC+F,GAAS,CACPF,UAAU,EACVxC,KAAM,UACNC,QAAS,mCAEXI,KAEAW,EAAQyE,KAAR,uBAA6BkI,KAzBS,kDA2BhB,oCAAlB,KAAM1N,QACRyC,GAAS,CACPF,UAAU,EACVxC,KAAM,QACNC,QAAS,KAAMA,UAGjByC,GAAS,CACPF,UAAU,EACVxC,KAAM,QACNC,QAAS,8BArCyB,0DAyCvC,CAACiB,EAAKF,EAAS2M,GAAIT,GAAeE,KAUrC,OACE,qCACE,cAAC,EAAD,CAAQ3S,QAASA,IAEjB,cAAC0V,GAAA,EAAD,CACEtV,KAAMA,EACNqF,QAASG,GACT+P,kBAAgB,oBAChBM,WAAS,EAJX,SAME,eAAC,IAAD,CAAMjR,IAAKwrB,EAAkB1nB,SAAUkoB,GAAvC,UACE,cAACpb,GAAA,EAAD,CAAa1C,GAAG,oBAAhB,4BAEA,cAAC,KAAD,CAAMrS,MAAI,EAACoI,GAAI,GAAf,SACE,cAACwM,GAAA,EAAD,MAGF,cAACI,GAAA,EAAD,CAAevT,MAAO,CAAEkU,UAAW,QAAnC,SACE,eAAC,KAAD,CAAMxN,WAAS,EAACyN,QAAS,EAAGlK,WAAW,SAAvC,UACE,cAAC,KAAD,CAAM1L,MAAI,EAACoI,GAAI,KAEf,cAAC,KAAD,CAAMpI,MAAI,EAACoI,GAAI,KAEf,cAAC,KAAD,CAAMpI,MAAI,EAACoI,GAAI,GAAf,SACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,+CAKF,cAAC,KAAD,CAAMzL,MAAI,EAACoI,GAAI,GAAf,SACE,cAAC,KAAD,CACE0N,mBAAmB,EACnB5S,SAAO,EACPuF,QAAS+I,EACTjJ,SA1CiB,SAACwN,GAChClE,GAAiBkE,IA0CHC,aAAa,YAIjB,cAAC,KAAD,CAAMhW,MAAI,EAACoI,GAAI,KAEf,cAAC,KAAD,CAAMpI,MAAI,EAACoI,GAAI,GAAf,SACE,cAACwM,GAAA,EAAD,MAGF,cAAC,KAAD,CAAM5U,MAAI,EAACoI,GAAI,KAEf,cAAC,KAAD,CAAMpI,MAAI,EAACoI,GAAI,GAAf,SACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,kDAKF,cAAC,KAAD,CAAMzL,MAAI,EAACoI,GAAI,GAAf,SACE,cAAC,KAAD,CACE0N,mBAAmB,EACnB5S,SAAO,EACPuF,QAASiJ,EACTnJ,SA9DgB,SAACwN,GAC/BhE,GAAgBgE,IA8DFC,aAAa,iBAKrB,eAACd,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAQzS,QAASqC,GAAjB,sBACA,cAACoQ,GAAA,EAAD,CAAQzQ,KAAK,SAASzF,MAAM,UAAUwD,QAAQ,YAA9C,6BAOJtD,GACA,eAAC,IAAD,CACEkT,GAAG,OACHlO,IAAKiC,GACL4B,aAAiB,OAAJmM,QAAI,IAAJA,OAAA,EAAAA,EAAM8T,UAAW,CAAExgB,OAAM,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAQV,QAChDkB,SAAUgoB,GACV3wB,UAAWF,EAAQgB,KALrB,UAOE,eAAC+nB,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,UACE,cAAC,KAAD,CACEllB,QAAQ,KACR2G,UAAU,KACVK,MAAM,SACNnK,UAAWF,EAAQqM,WAJrB,0CAQA,cAAC,KAAD,CACEhJ,QAAQ,YACR2G,UAAU,OACVK,MAAM,SACNnK,UAAWF,EAAQ8vB,cAJrB,uCASA,cAACta,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,aAG9B,cAACO,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,eAAC,KAAD,CAAMxf,WAAS,EAACyN,QAAS,EAAzB,UACE,cAAC,KAAD,CAAM5V,MAAI,EAACoI,GAAI,EAAf,SACE,cAACM,EAAA,EAAD,CAAsBC,YAAaC,IAAnC,SACE,cAACC,EAAA,EAAD,CACExH,MAAM,kBACNyH,YAAY,aACZzE,MAAOgC,EACPkC,SAAU,SAACQ,GAAD,OAAOzC,EAAQyC,IACzBC,YAAa,SAACC,GAAD,OAAY,cAACC,EAAA,EAAD,eAAeD,WAK9C,cAAC,KAAD,CAAMjJ,MAAI,EAACoI,GAAI,IAEf,cAAC,KAAD,CAAMpI,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAK,iBACLoB,MAAM,iBACNhD,MAAM,2BAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEiK,GAAG,eACHhR,MAAM,0BACN4B,KAAK,mBAIT,cAAC,KAAD,CAAMjD,MAAI,EAACoI,GAAI,IAEf,cAAC,KAAD,CAAMpI,MAAI,EAACoI,GAAI,EAAf,SACE,cAACM,EAAA,EAAD,CAAsBC,YAAaC,IAAnC,SACE,cAACC,EAAA,EAAD,CACExH,MAAM,OACNyH,YAAY,aACZzE,MAAOurB,EACPrnB,SAAU,SAACQ,GAAD,OAAO8mB,GAAc9mB,IAC/BC,YAAa,SAACC,GAAD,OAAY,cAACC,EAAA,EAAD,eAAeD,WAK9C,cAAC,KAAD,CAAMjJ,MAAI,EAACoI,GAAI,IAEf,cAAC,KAAD,CAAMpI,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEiK,GAAG,SACHhR,MAAM,QACN4B,KAAK,SACLoF,YAAY,cAMpB,cAAC8f,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,cAACO,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,eAAC,KAAD,CAAMxf,WAAS,EAACyN,QAAS,EAAzB,UACE,cAAC,KAAD,CAAM5V,MAAI,EAACoI,GAAI,GAAf,SACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,4CAIF,cAAC,KAAD,CAAMzL,MAAI,EAACoI,GAAI,GAAf,SACE,cAAC,GAAD,CAAOiK,GAAG,eAAehR,MAAM,OAAO4B,KAAK,mBAG7C,cAAC,KAAD,CAAMjD,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CAAOiK,GAAG,cAAchR,MAAM,QAAQ4B,KAAK,kBAG7C,cAAC,KAAD,CAAMjD,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CAAOiK,GAAG,iBAAiBhR,MAAM,OAAO4B,KAAK,qBAG/C,cAAC,KAAD,CAAMjD,MAAI,EAACoI,GAAI,EAAf,SACE,cAACM,EAAA,EAAD,CAAsBC,YAAaC,IAAnC,SACE,cAACC,EAAA,EAAD,CACExH,MAAM,qBACNyH,YAAY,aACZzE,MAAOyrB,GACPvnB,SAAU,SAACQ,GAAD,OAAOgnB,GAAgBhnB,IACjCC,YAAa,SAACC,GAAD,OAAY,cAACC,EAAA,EAAD,eAAeD,gBAOlD,cAACkf,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,cAACO,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,eAAC,KAAD,CAAMxf,WAAS,EAACyN,QAAS,EAAzB,UACE,cAAC,KAAD,CAAM5V,MAAI,EAACoI,GAAI,GAAf,SACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,6CAKF,cAAC,KAAD,CAAMzL,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAK,aACLoB,MAAM,aACNhD,MAAM,uCAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAK,OACLoB,MAAM,OACNhD,MAAM,uCAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAK,cACLoB,MAAM,cACNhD,MAAM,uBAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAK,aACLoB,MAAM,aACNhD,MAAM,mCAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAK,aACLoB,MAAM,aACNhD,MAAM,sBAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAK,WACLoB,MAAM,WACNhD,MAAM,8BAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAK,WACLoB,MAAM,WACNhD,MAAM,4BAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAK,OACLoB,MAAM,OACNhD,MAAM,8BAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAK,UACLoB,MAAM,UACNhD,MAAM,kCAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAK,cACLoB,MAAM,cACNhD,MAAM,uBAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAK,QACLoB,MAAM,QACNhD,MAAM,2CAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CAAOiK,GAAG,aAAahR,MAAM,QAAQ4B,KAAK,iBAG5C,cAAC,KAAD,CAAMjD,MAAI,EAACoI,GAAI,KACf,cAAC,KAAD,CAAMpI,MAAI,EAACoI,GAAI,KACf,cAAC,KAAD,CAAMpI,MAAI,EAACoI,GAAI,KAEf,cAAC,KAAD,CAAMpI,MAAI,EAACoI,GAAI,GAAf,SACE,cAAC,GAAD,CACEiK,GAAG,oBACHhR,MAAM,oBACN4B,KAAK,wBAIT,cAAC,KAAD,CAAMjD,MAAI,EAACoI,GAAI,GAAf,SACE,cAAC,GAAD,CACEiK,GAAG,wBACHhR,MAAM,yDACN4B,KAAK,4BAIT,cAAC,KAAD,CAAMjD,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEiK,GAAG,iBACHhR,MAAM,8BACN4B,KAAK,iBACLoF,YAAY,wBAIhB,cAAC,KAAD,CAAMrI,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEiK,GAAG,iBACHhR,MAAM,aACN4B,KAAK,qBAIT,cAAC,KAAD,CAAMjD,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEiK,GAAG,kBACHhR,MAAM,oBACN4B,KAAK,kBACLoF,YAAY,cAMpB,cAAC8f,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,cAACO,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,eAAC,KAAD,CAAMxf,WAAS,EAACyN,QAAS,EAAzB,UACE,cAAC,KAAD,CAAM5V,MAAI,EAACoI,GAAI,GAAf,SACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,iDAKF,eAAC,KAAD,CAAMzL,MAAI,EAACoI,GAAI,GAAf,UACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,+EAIA,cAAC,GAAD,CACE4G,GAAG,WACHhR,MAAM,wOAIN4B,KAAK,WACL+T,aAAW,EACXC,KAAM,OAIV,cAACkR,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,eAAC,KAAD,CAAM5nB,MAAI,EAACoI,GAAI,GAAf,UACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,mCAIA,cAAC,GAAD,CACE4G,GAAG,SACHhR,MAAM,6EACN4B,KAAK,SACL+T,aAAW,EACXC,KAAM,OAIV,cAACkR,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,eAAC,KAAD,CAAM5nB,MAAI,EAACoI,GAAI,GAAf,UACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,oCAIA,cAAC,GAAD,CACE4G,GAAG,SACHhR,MAAM,mLACN4B,KAAK,SACL+T,aAAW,EACXC,KAAM,OAIV,cAACkR,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,eAAC,KAAD,CAAM5nB,MAAI,EAACoI,GAAI,GAAf,UACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,mCAIA,cAAC,GAAD,CACE4G,GAAG,SACHhR,MAAM,2IACN4B,KAAK,SACL+T,aAAW,EACXC,KAAM,OAIV,cAACkR,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,eAAC,KAAD,CAAM5nB,MAAI,EAACoI,GAAI,GAAf,UACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,sCAIA,cAAC,GAAD,CACE4G,GAAG,UACHhR,MAAM,kLACN4B,KAAK,UACL+T,aAAW,EACXC,KAAM,OAIV,cAACkR,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,eAAC,KAAD,CAAM5nB,MAAI,EAACoI,GAAI,GAAf,UACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,uCAIA,cAAC,KAAD,CAAMtD,WAAS,EAACyN,QAAS,EAAzB,SACGwZ,GAAa9qB,KAAI,SAACtE,GAAD,OAChB,qCACE,cAAC,KAAD,CAAMA,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAI,eAAUjD,EAAKiD,MACnBoB,MAAK,eAAUrE,GACfqB,MAAOrB,EAAKqB,UAIhB,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEiK,GAAE,gBAAWrS,EAAKiD,MAClB5B,MAAM,QACN4B,KAAI,gBAAWjD,EAAKiD,UAIxB,cAAC,KAAD,CAAMjD,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEiK,GAAE,eAAUrS,EAAKiD,MACjB5B,MAAM,UACN4B,KAAI,eAAUjD,EAAKiD,qBAQ/B,cAACklB,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,eAAC,KAAD,CAAM5nB,MAAI,EAACoI,GAAI,GAAf,UACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,uCAIA,cAAC,KAAD,CAAMzL,MAAI,EAACoI,GAAI,GAAf,SACE,cAAC,GAAD,CACEnF,KAAK,gBACLoB,MAAM,gBACNhD,MAAM,aAIV,eAAC,KAAD,CAAM8G,WAAS,EAACyN,QAAS,EAAzB,UACE,cAAC,KAAD,CAAM5V,MAAI,EAACoI,GAAI,GAAf,SACE,cAAC,GAAD,CACEnF,KAAK,gBACLoB,MAAM,gBACNhD,MAAM,8BAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEiK,GAAG,sBACHhR,MAAM,QACN4B,KAAK,0BAIT,cAAC,KAAD,CAAMjD,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEiK,GAAG,qBACHhR,MAAM,gBACN4B,KAAK,4BAKX,eAAC,KAAD,CAAMkF,WAAS,EAACyN,QAAS,EAAzB,UACE,cAAC,KAAD,CAAM5V,MAAI,EAACoI,GAAI,GAAf,SACE,cAAC,GAAD,CACEnF,KAAK,kBACLoB,MAAM,kBACNhD,MAAM,iCAIV,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEiK,GAAG,wBACHhR,MAAM,QACN4B,KAAK,4BAIT,cAAC,KAAD,CAAMjD,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEiK,GAAG,uBACHhR,MAAM,UACN4B,KAAK,2BAIT,cAAC,KAAD,CAAMjD,MAAI,EAACoI,GAAI,GAAf,SACE,cAAC,GAAD,CACEiK,GAAG,8BACHhR,MAAM,gDACN4B,KAAK,wCAMb,cAACklB,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,eAAC,KAAD,CAAM5nB,MAAI,EAACoI,GAAI,GAAf,UACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,gDAIA,cAAC,GAAD,CACE4G,GAAG,gBACHhR,MAAM,2GACN4B,KAAK,gBACL+T,aAAW,EACXC,KAAM,OAIV,cAACkR,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,eAAC,KAAD,CAAM5nB,MAAI,EAACoI,GAAI,GAAf,UACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,iEAIA,cAAC,GAAD,CACE4G,GAAG,eACHhR,MAAM,oBACN4B,KAAK,eACL+T,aAAW,EACXC,KAAM,OAIV,cAACkR,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,eAAC,KAAD,CAAM5nB,MAAI,EAACoI,GAAI,GAAf,UACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,sEAIA,cAAC,GAAD,CACE4G,GAAG,gBACHhR,MAAM,4MACN4B,KAAK,gBACL+T,aAAW,EACXC,KAAM,OAIV,cAACkR,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,eAAC,KAAD,CAAM5nB,MAAI,EAACoI,GAAI,GAAf,UACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,kCAGA,uBACA,qKAKA,uBACA,uBACA,+BACE,2IAMF,cAAC0c,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG7ByH,GAAY/qB,KAAI,SAAC8rB,GAAD,OACf,qCACE,eAAC,KAAD,CAAMjoB,WAAS,EAACyN,QAAS,EAAzB,UACE,cAAC,KAAD,CAAM5V,MAAI,EAACoI,GAAI,GAAI9I,UAAWF,EAAQ+vB,WAAtC,SACE,cAAC,GAAD,CACElsB,KAAMmtB,EAAMd,UACZjrB,MAAO+rB,EAAMd,UACbjuB,MAAO+uB,EAAMb,eAIhBa,EAAMZ,WACLY,EAAMZ,UAAUlrB,KAAI,SAAC+rB,GAAD,OAClB,cAAC,KAAD,CAAMrwB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAI,UAAKmtB,EAAMd,UAAX,YAAwBe,EAASptB,MACrCoB,MAAK,UAAK+rB,EAAMd,UAAX,YAAwBe,EAASptB,MACtC5B,MAAOgvB,EAAShvB,gBAM1B,cAAC8mB,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,0BAQxC,eAAC,KAAD,CAAM5nB,MAAI,EAACoI,GAAI,GAAf,UACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,8CAIA,wDAEA,uBACA,uBAEA,yNAMA,uBAEA,cAAC,KAAD,CAAMtD,WAAS,EAACyN,QAAS,EAAzB,SACG6Z,GAAcnrB,KAAI,SAACtE,GAAD,OACjB,qCACE,cAACmoB,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,cAAC,KAAD,CAAM5nB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEnF,KAAMjD,EAAKiD,KACXoB,MAAOrE,EAAKiD,KACZ5B,MAAOrB,EAAKqB,UAIhB,cAAC,KAAD,CAAMrB,MAAI,EAACoI,GAAI,EAAf,SACE,cAAC,GAAD,CACEiK,GAAE,kBAAarS,EAAKiD,MACpB5B,MAAM,cACN4B,KAAI,kBAAajD,EAAKiD,qBAQlC,cAACklB,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,YAA1C,SACE,cAAC/S,GAAA,EAAD,CAAStV,UAAWF,EAAQwoB,YAG9B,cAACO,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQqM,WAA1C,SACE,eAAC,KAAD,CAAMtD,WAAS,EAACyN,QAAS,EAAzB,UACE,cAAC,KAAD,CAAM5V,MAAI,EAACoI,GAAI,GAAf,SACE,cAACyN,GAAA,EAAD,CAAWvW,UAAWF,EAAQqM,WAA9B,2BAKF,cAAC,KAAD,CAAMzL,MAAI,EAACoI,GAAI,GAAIwa,QAAQ,SAA3B,SACE,cAACwH,GAAD,CACExB,YAAazU,EAAOA,EAAK8T,QAAU,GACnCY,YAAaE,WAMrB,cAACZ,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQuoB,cAI1C,cAACQ,GAAA,EAAD,CAAa/S,WAAS,EAAC9V,UAAWF,EAAQqM,WAA1C,SACE,eAAC,KAAD,CAAMtD,WAAS,EAACyN,QAAS,EAAGgN,QAAQ,SAApC,UACE,cAAC,KAAD,CAAM5iB,MAAI,EAAV,SACE,cAACmV,GAAA,EAAD,CACE1S,QAAQ,WACRxD,MAAM,UACNyD,QAAS,kBAAMgD,EAAQyE,KAAR,uBAA6BkI,MAH9C,sBASF,cAAC,KAAD,CAAMrS,MAAI,EAAV,SACE,cAACmV,GAAA,EAAD,CAAQzQ,KAAK,SAASzF,MAAM,UAAUwD,QAAQ,YAA9C,sBAKF,cAAC,KAAD,CAAMzC,MAAI,EAAV,SACE,cAACmV,GAAA,EAAD,CACEzS,QAAS,kBAAM4W,MACf7X,MAAO,CAAE7D,WAAYgE,KAAM,KAAM3C,MAAO,SACxCwD,QAAQ,YAHV,0BASF,cAAC,KAAD,CAAMzC,MAAI,EAAV,SACE,mBACEiV,KAAI,8BAAkBxN,QAAlB,IAAkBA,OAAlB,EAAkBA,EAAQC,IAA1B,yCACJjG,MAAO,CACL7D,WAAYJ,IAAI,KAChByB,MAAO,QACPqxB,QAAS,OACT3T,eAAgB,QANpB,SASE,cAACxH,GAAA,EAAD,CACEzS,QAAS,kBAAM4jB,QAAQC,IAAI,aAC3B9kB,MAAO,CAAE7D,WAAYJ,IAAI,KAAMyB,MAAO,SACtCwD,QAAQ,YAHV,kCAcX0E,GAAMD,UAAY,cAAC,GAAD,eAAcC,SC5vDjCxI,GAAYC,aAAW,SAAC5B,GAAD,MAAmB,CAC9CoD,KAAM,CACJR,QAAS,OACT8nB,SAAU,OACV9pB,WAAY,QACZgO,QAAS5O,EAAM4Y,QAAQ,GACvB2B,OAAQva,EAAM4Y,QAAQ,GACtB7V,aAAc/C,EAAM4Y,QAAQ,KAE9BnK,WAAY,CACV/J,WAAY,UAEdwtB,cAAe,CACbxtB,WAAY,UAEdimB,YAAa,CACXpQ,OAAQva,EAAM4Y,QAAQ,EAAG,IAE3BgS,QAAS,CACPrQ,OAAQva,EAAM4Y,QAAQ,IAExBuZ,WAAY,CACVvvB,QAAS,OACT,SAAU,CACR8B,WAAY,eAKZ0tB,GAAe,CACnB,CACEnsB,KAAM,eACN5B,MAAO,oBAET,CACE4B,KAAM,eACN5B,MAAO,kBAET,CACE4B,KAAM,QACN5B,MAAO,oBAET,CACE4B,KAAM,OACN5B,MAAO,wBAET,CACE4B,KAAM,kBACN5B,MAAO,qBAET,CACE4B,KAAM,QACN5B,MAAO,WAILguB,GAAc,CAClB,CACEC,UAAW,sBACXC,WAAY,uBACZC,UAAW,CACT,CACEvsB,KAAM,kCACN5B,MAAO,mCAET,CACE4B,KAAM,QACN5B,MAAO,SAET,CACE4B,KAAM,eACN5B,MAAO,sBAET,CACE4B,KAAM,SACN5B,MAAO,UAET,CACE4B,KAAM,oCACN5B,MAAO,qCAET,CACE4B,KAAM,mBACN5B,MAAO,oBAET,CACE4B,KAAM,aACN5B,MAAO,gBAIb,CACEiuB,UAAW,sBACXC,WAAY,2DACZC,UAAW,CACT,CACEvsB,KAAM,8BACN5B,MAAO,+BAET,CACE4B,KAAM,2BACN5B,MAAO,4BAET,CACE4B,KAAM,iBACN5B,MAAO,8BAET,CACE4B,KAAM,aACN5B,MAAO,mBAIb,CACEiuB,UAAW,oBACXC,WAAY,6BACZC,UAAW,CACT,CACEvsB,KAAM,sBACN5B,MAAO,uBAET,CACE4B,KAAM,cACN5B,MAAO,eAET,CACE4B,KAAM,cACN5B,MAAO,eAET,CACE4B,KAAM,2BACN5B,MAAO,8BAIb,CACEiuB,UAAW,eACXC,WAAY,4BACZC,UAAW,CACT,CACEvsB,KAAM,aACN5B,MAAO,cAET,CACE4B,KAAM,YACN5B,MAAO,mBAET,CACE4B,KAAM,gBACN5B,MAAO,iBAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,cACN5B,MAAO,iBAIb,CACEiuB,UAAW,uBACXC,WAAY,qDACZC,UAAW,CACT,CACEvsB,KAAM,oBACN5B,MAAO,qBAET,CACE4B,KAAM,mBACN5B,MAAO,sBAIb,CACEiuB,UAAW,iBACXC,WAAY,0CACZC,UAAW,CACT,CACEvsB,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,UACN5B,MAAO,WAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,iBACN5B,MAAO,kBAET,CACE4B,KAAM,qBACN5B,MAAO,wBAIb,CACEiuB,UAAW,kBACXC,WAAY,wBACZC,UAAW,CACT,CACEvsB,KAAM,+BACN5B,MAAO,gCAET,CACE4B,KAAM,kBACN5B,MAAO,sBAET,CACE4B,KAAM,wBACN5B,MAAO,+BAET,CACE4B,KAAM,wBACN5B,MAAO,8BAIb,CACEiuB,UAAW,oBACXC,WAAY,mDACZC,UAAW,CACT,CACEvsB,KAAM,aACN5B,MAAO,oBAET,CACE4B,KAAM,YACN5B,MAAO,mBAET,CACE4B,KAAM,8BACN5B,MAAO,qCAET,CACE4B,KAAM,qBACN5B,MAAO,sBAET,CACE4B,KAAM,qBACN5B,MAAO,wBAIb,CACEiuB,UAAW,qBACXC,WAAY,0DACZC,UAAW,CACT,CACEvsB,KAAM,qCACN5B,MAAO,oBAET,CACE4B,KAAM,UACN5B,MAAO,WAET,CACE4B,KAAM,WACN5B,MAAO,cAIb,CACEiuB,UAAW,qBACXC,WAAY,0BACZC,UAAW,CACT,CACEvsB,KAAM,yBACN5B,MAAO,0BAET,CACE4B,KAAM,UACN5B,MAAO,WAET,CACE4B,KAAM,SACN5B,MAAO,UAET,CACE4B,KAAM,iBACN5B,MAAO,kBAET,CACE4B,KAAM,sCACN5B,MAAO,+CAIb,CACEiuB,UAAW,iBACXC,WAAY,gDACZC,UAAW,CACT,CACEvsB,KAAM,YACN5B,MAAO,gBAET,CACE4B,KAAM,eACN5B,MAAO,sCAIb,CACEiuB,UAAW,uBACXC,WAAY,8BACZC,UAAW,CACT,CACEvsB,KAAM,SACN5B,MAAO,UAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,wCACN5B,MAAO,yCAET,CACE4B,KAAM,eACN5B,MAAO,kBAIb,CACEiuB,UAAW,iBACXC,WAAY,gBACZC,UAAW,CACT,CACEvsB,KAAM,SACN5B,MAAO,UAET,CACE4B,KAAM,aACN5B,MAAO,+BAET,CACE4B,KAAM,gBACN5B,MAAO,uBAET,CACE4B,KAAM,oBACN5B,MAAO,0BAIb,CACEiuB,UAAW,mBACXC,WAAY,0CACZC,UAAW,CACT,CACEvsB,KAAM,YACN5B,MAAO,0CAET,CACE4B,KAAM,YACN5B,MAAO,aAET,CACE4B,KAAM,YACN5B,MAAO,aAET,CACE4B,KAAM,cACN5B,MAAO,qBAET,CACE4B,KAAM,iBACN5B,MAAO,kBAET,CACE4B,KAAM,uBACN5B,MAAO,0BAIb,CACEiuB,UAAW,gBACXC,WAAY,mCACZC,UAAW,CACT,CACEvsB,KAAM,cACN5B,MAAO,kBAET,CACE4B,KAAM,oBACN5B,MAAO,qBAET,CACE4B,KAAM,iBACN5B,MAAO,kBAET,CACE4B,KAAM,cACN5B,MAAO,eAET,CACE4B,KAAM,eACN5B,MAAO,qBAIb,CACEiuB,UAAW,uBACXC,WAAY,uCACZC,UAAW,CACT,CACEvsB,KAAM,0BACN5B,MAAO,2BAET,CACE4B,KAAM,oBACN5B,MAAO,qBAET,CACE4B,KAAM,aACN5B,MAAO,cAET,CACE4B,KAAM,OACN5B,MAAO,QAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,SACN5B,MAAO,UAET,CACE4B,KAAM,uBACN5B,MAAO,0BAIb,CACEiuB,UAAW,sBACXC,WAAY,sDACZC,UAAW,CACT,CACEvsB,KAAM,4CACN5B,MAAO,6CAET,CACE4B,KAAM,WACN5B,MAAO,cAIb,CACEiuB,UAAW,qBACXC,WAAY,uEACZC,UAAW,CACT,CACEvsB,KAAM,UACN5B,MAAO,WAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,8BACN5B,MAAO,kCAET,CACE4B,KAAM,iCACN5B,MAAO,oCAIb,CACEiuB,UAAW,qBACXC,WAAY,0BACZC,UAAW,CACT,CACEvsB,KAAM,0BACN5B,MAAO,+CAET,CACE4B,KAAM,kCACN5B,MAAO,iDAIb,CACEiuB,UAAW,mBACXC,WAAY,iEACZC,UAAW,CACT,CACEvsB,KAAM,iBACN5B,MAAO,kBAET,CACE4B,KAAM,sBACN5B,MAAO,uBAET,CACE4B,KAAM,uBACN5B,MAAO,8BAET,CACE4B,KAAM,sCACN5B,MAAO,uCAET,CACE4B,KAAM,yBACN5B,MAAO,gCAET,CACE4B,KAAM,cACN5B,MAAO,qBAET,CACE4B,KAAM,WACN5B,MAAO,iBAIb,CACEiuB,UAAW,uBACXC,WAAY,qDACZC,UAAW,CACT,CACEvsB,KAAM,sBACN5B,MAAO,iFAET,CACE4B,KAAM,aACN5B,MAAO,cAET,CACE4B,KAAM,oCACN5B,MAAO,gDAIb,CACEiuB,UAAW,uBACXC,WAAY,6CAEd,CACED,UAAW,gBACXC,WAAY,0CACZC,UAAW,CACT,CACEvsB,KAAM,UACN5B,MAAO,cAET,CACE4B,KAAM,0BACN5B,MAAO,2BAET,CACE4B,KAAM,eACN5B,MAAO,gBAET,CACE4B,KAAM,iBACN5B,MAAO,kBAET,CACE4B,KAAM,aACN5B,MAAO,iBAET,CACE4B,KAAM,eACN5B,MAAO,kBAIb,CACEiuB,UAAW,mBACXC,WAAY,sBACZC,UAAW,CACT,CACEvsB,KAAM,UACN5B,MAAO,cAET,CACE4B,KAAM,UACN5B,MAAO,WAET,CACE4B,KAAM,YACN5B,MAAO,aAET,CACE4B,KAAM,WACN5B,MAAO,kBAET,CACE4B,KAAM,WACN5B,MAAO,YAET,CACE4B,KAAM,QACN5B,MAAO,SAET,CACE4B,KAAM,cACN5B,MAAO,eAET,CACE4B,KAAM,WACN5B,MAAO,cAIb,CACEiuB,UAAW,sBACXC,WAAY,mEACZC,UAAW,CACT,CACEvsB,KAAM,mCACN5B,MAAO,6CAET,CACE4B,KAAM,2BACN5B,MAAO,4BAET,CACE4B,KAAM,OACN5B,MAAO,QAET,CACE4B,KAAM,mCACN5B,MAAO,oCAET,CACE4B,KAAM,SACN5B,MAAO,aAET,CACE4B,KAAM,uBACN5B,MAAO,2BAET,CACE4B,KAAM,+BACN5B,MAAO,wCAIb,CACEiuB,UAAW,qBACXC,WAAY,yBACZC,UAAW,CACT,CACEvsB,KAAM,8BACN5B,MAAO,kCAET,CACE4B,KAAM,8CACN5B,MAAO,qDAMTouB,GAAgB,CACpB,CACExsB,KAAM,MACN5B,MAAO,8CAET,CACE4B,KAAM,MACN5B,MAAO,6BAET,CACE4B,KAAM,MACN5B,MAAO,qEAET,CACE4B,KAAM,MACN5B,MAAO,sEAET,CACE4B,KAAM,MACN5B,MAAO,sEAET,CACE4B,KAAM,MACN5B,MAAO,sDAET,CACE4B,KAAM,MACN5B,MAAO,+DAET,CACE4B,KAAM,MACN5B,MACE,2GAEJ,CACE4B,KAAM,MACN5B,MAAO,mCAET,CACE4B,KAAM,MACN5B,MAAO,qCAET,CACE4B,KAAM,MACN5B,MAAO,kCAET,CACE4B,KAAM,MACN5B,MAAO,+BAET,CACE4B,KAAM,MACN5B,MAAO,oEAET,CACE4B,KAAM,MACN5B,MAAO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","file":"static/js/main.ddb0f5a9.chunk.js","sourcesContent":["import { red } from '@material-ui/core/colors';\r\nimport { createMuiTheme } from '@material-ui/core/styles';\r\n\r\nconst theme = createMuiTheme({\r\n  palette: {\r\n    primary: {\r\n      main: '#3f69ab',\r\n      light: '#80a0b8',\r\n    },\r\n    secondary: {\r\n      main: '#9b9c9c',\r\n      light: '#696969',\r\n    },\r\n    error: {\r\n      main: red.A700,\r\n    },\r\n    success: {\r\n      main: '#32CD32',\r\n    },\r\n    info: {\r\n      main: '#1E90FF',\r\n    },\r\n    background: {\r\n      default: '#f4f4f4',\r\n    },\r\n  },\r\n});\r\n\r\nexport default theme;\r\n","import * as React from 'react';\r\nimport { useCallback, useEffect } from 'react';\r\nimport { Redirect, useLocation } from 'react-router-dom';\r\n\r\nimport { useKeycloak } from '@react-keycloak/web';\r\n\r\nconst LoginPage: React.FC = () => {\r\n  const location = useLocation<{ [key: string]: unknown }>();\r\n  const currentLocationState = location.state || {\r\n    from: { pathname: '/meus-prontuarios' },\r\n  };\r\n\r\n  const { keycloak } = useKeycloak();\r\n\r\n  const login = useCallback(() => {\r\n    keycloak?.login();\r\n  }, [keycloak]);\r\n\r\n  useEffect(() => {\r\n    if (!keycloak.authenticated) {\r\n      login();\r\n    }\r\n  }, [keycloak, login]);\r\n\r\n  if (keycloak?.authenticated)\r\n    return <Redirect to={currentLocationState?.from as string} />;\r\n\r\n  return <div />;\r\n};\r\n\r\nexport default LoginPage;\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) =>\r\n  createStyles({\r\n    backdrop: {\r\n      zIndex: theme.zIndex.drawer + 1,\r\n      color: '#fff',\r\n    },\r\n  }),\r\n);\r\n","import React from 'react';\r\nimport { Backdrop, CircularProgress } from '@material-ui/core';\r\n\r\nimport { useStyles } from './styles';\r\n\r\ninterface LoaderProps {\r\n  loading: boolean;\r\n}\r\n\r\nconst Loader: React.FC<LoaderProps> = ({ loading }) => {\r\n  const classes = useStyles();\r\n\r\n  return (\r\n    <Backdrop className={classes.backdrop} open={loading}>\r\n      <CircularProgress color=\"inherit\" />\r\n    </Backdrop>\r\n  );\r\n};\r\n\r\nexport default Loader;\r\n","import {\r\n  createStyles,\r\n  makeStyles,\r\n  TableCell,\r\n  Theme,\r\n  withStyles,\r\n} from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles({\r\n  table: {\r\n    minWidth: 650,\r\n  },\r\n  pagination: {\r\n    '& .MuiTablePagination-spacer': {\r\n      display: 'none',\r\n    },\r\n  },\r\n  filter: {\r\n    marginTop: '1%',\r\n    marginBottom: '1%',\r\n  },\r\n  item: {\r\n    paddingRight: '4%',\r\n  },\r\n});\r\n\r\nexport const StyledTableCell = withStyles((theme: Theme) =>\r\n  createStyles({\r\n    root: {\r\n      backgroundColor: theme.palette.primary.main,\r\n      color: theme.palette.background.default,\r\n    },\r\n  }),\r\n)(TableCell);\r\n","import { MutableRefObject, useEffect, useMemo, useRef } from 'react';\r\nimport axios from 'axios';\r\nimport type { AxiosInstance } from 'axios';\r\n\r\nimport { useKeycloak } from '@react-keycloak/web';\r\n\r\nexport const useAxios = (\r\n  baseURL = `${process.env.REACT_APP_PRONTUARIO_API}`,\r\n): MutableRefObject<AxiosInstance | undefined> => {\r\n  const axiosInstance = useRef<AxiosInstance>();\r\n  const { keycloak, initialized } = useKeycloak();\r\n  const token = keycloak?.token ?? '';\r\n\r\n  useEffect(() => {\r\n    axiosInstance.current = axios.create({\r\n      baseURL,\r\n      headers: {\r\n        Authorization: initialized ? `Bearer ${token}` : undefined,\r\n      },\r\n    });\r\n\r\n    return () => {\r\n      axiosInstance.current = undefined;\r\n    };\r\n  }, [baseURL, initialized, token]);\r\n\r\n  return axiosInstance;\r\n};\r\n\r\nexport const useHasRealmRole = (role: string): boolean => {\r\n  const { keycloak, initialized } = useKeycloak();\r\n\r\n  const hasRole = useMemo(() => {\r\n    if (!initialized || !keycloak.authenticated) {\r\n      return false;\r\n    }\r\n\r\n    return keycloak.hasRealmRole(role);\r\n  }, [initialized, keycloak, role]);\r\n\r\n  return hasRole;\r\n};\r\n","import React from 'react';\r\nimport { Chip } from '@material-ui/core';\r\n\r\nimport {\r\n  Done,\r\n  Close,\r\n  Attachment,\r\n  Language,\r\n  PictureAsPdf,\r\n  Image,\r\n  CropOriginal,\r\n  Description,\r\n  AccessTime,\r\n} from '@material-ui/icons';\r\n\r\nimport { Reviews, Archive } from '@mui/icons-material';\r\n\r\nimport { blue, green, red, yellow } from '@material-ui/core/colors';\r\n\r\nimport theme from '../theme';\r\n\r\nexport const getChip = (label: string) => {\r\n  switch (label) {\r\n    case 'scanned':\r\n      return (\r\n        <Chip\r\n          label=\"Digitalizado\"\r\n          color=\"primary\"\r\n          icon={<Attachment style={{ color: '#fff' }} />}\r\n          style={{ color: '#fff', fontWeight: 'bold' }}\r\n        />\r\n      );\r\n    case 'active':\r\n      return (\r\n        <Chip\r\n          label=\"Ativo\"\r\n          icon={<Done style={{ color: '#fff' }} />}\r\n          style={{ background: green[700], color: '#fff', fontWeight: 'bold' }}\r\n        />\r\n      );\r\n    case 'online':\r\n      return (\r\n        <Chip\r\n          label=\"Online\"\r\n          icon={<Language style={{ color: '#fff' }} />}\r\n          style={{ background: blue[700], color: '#fff', fontWeight: 'bold' }}\r\n        />\r\n      );\r\n    case 'closed':\r\n      return (\r\n        <Chip\r\n          label=\"Encerrado\"\r\n          icon={<Close style={{ color: '#fff' }} />}\r\n          style={{ background: red[700], color: '#fff', fontWeight: 'bold' }}\r\n        />\r\n      );\r\n\r\n    case 'pending':\r\n      return (\r\n        <Chip\r\n          label=\"Pendente\"\r\n          icon={<AccessTime style={{ color: '#fff' }} />}\r\n          style={{ background: yellow[800], color: '#fff', fontWeight: 'bold' }}\r\n        />\r\n      );\r\n\r\n    case 'approved':\r\n      return (\r\n        <Chip\r\n          label=\"Aprovado\"\r\n          icon={<Done style={{ color: '#fff' }} />}\r\n          style={{ background: green[700], color: '#fff', fontWeight: 'bold' }}\r\n        />\r\n      );\r\n\r\n    case 'review':\r\n      return (\r\n        <Chip\r\n          label=\"Aguardando revisão\"\r\n          icon={<Reviews style={{ color: '#fff' }} />}\r\n          style={{ background: yellow[800], color: '#fff', fontWeight: 'bold' }}\r\n        />\r\n      );\r\n    case 'archived':\r\n      return (\r\n        <Chip\r\n          label=\"Arquivado\"\r\n          icon={<Archive style={{ color: '#fff' }} />}\r\n          style={{ background: red[700], color: '#fff', fontWeight: 'bold' }}\r\n        />\r\n      );\r\n    default:\r\n      return null;\r\n  }\r\n};\r\n\r\nexport const getFileChip = (\r\n  mimetype: string,\r\n  originalName: string,\r\n  path?: string,\r\n  func?: any,\r\n) => {\r\n  switch (mimetype) {\r\n    case 'image/png':\r\n      return (\r\n        <Chip\r\n          label={originalName}\r\n          variant=\"outlined\"\r\n          onClick={() => func(path)}\r\n          clickable\r\n          icon={<CropOriginal />}\r\n        />\r\n      );\r\n    case 'image/jpeg':\r\n      return (\r\n        <Chip\r\n          label={originalName}\r\n          onClick={() => func(path)}\r\n          variant=\"outlined\"\r\n          clickable\r\n          icon={<Image style={{ color: `${theme.palette.secondary.main}` }} />}\r\n        />\r\n      );\r\n    case 'application/pdf':\r\n      return (\r\n        <Chip\r\n          label={originalName}\r\n          onClick={() => func(path)}\r\n          variant=\"outlined\"\r\n          clickable\r\n          icon={\r\n            <PictureAsPdf style={{ color: `${theme.palette.error.main}` }} />\r\n          }\r\n        />\r\n      );\r\n    case 'application/msword':\r\n      return (\r\n        <Chip\r\n          label={originalName}\r\n          variant=\"outlined\"\r\n          onClick={() => func(path)}\r\n          clickable\r\n          icon={\r\n            <Description style={{ color: `${theme.palette.primary.main}` }} />\r\n          }\r\n        />\r\n      );\r\n    case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\r\n      return (\r\n        <Chip\r\n          label={originalName}\r\n          clickable\r\n          onClick={() => func(path)}\r\n          variant=\"outlined\"\r\n          icon={\r\n            <Description style={{ color: `${theme.palette.primary.main}` }} />\r\n          }\r\n        />\r\n      );\r\n\r\n    default:\r\n      return (\r\n        <Chip\r\n          label={originalName}\r\n          variant=\"outlined\"\r\n          onClick={() => func(path)}\r\n          clickable\r\n          icon={<Attachment />}\r\n        />\r\n      );\r\n  }\r\n};\r\n","import React, { useRef, useEffect } from 'react';\r\nimport ReactSelect, {\r\n  OptionTypeBase,\r\n  Props as SelectProps,\r\n} from 'react-select';\r\n\r\nimport { useField } from '@unform/core';\r\n\r\ninterface Props extends SelectProps<OptionTypeBase> {\r\n  name: string;\r\n  isMulti: false | undefined;\r\n}\r\n\r\nconst Select: React.FC<Props> = ({ name, isMulti = false, ...rest }) => {\r\n  const selectRef = useRef(null);\r\n  const { fieldName, defaultValue, registerField, error } = useField(name);\r\n  const style = {\r\n    menuPortal: (provided: any) => ({ ...provided, zIndex: 9999 }),\r\n    menu: (provided: any) => ({ ...provided, zIndex: 9999 }),\r\n    option: (styles: any, state: any) => ({\r\n      ...styles,\r\n      color: state.isSelected ? '#FFF' : styles.color,\r\n      backgroundColor: state.isSelected ? '#80a0b8' : styles.color,\r\n      borderBottom: '1px solid rgba(0, 0, 0, 0.125)',\r\n      ':last-child': { borderBottom: 'none' },\r\n      '&:hover': {\r\n        color: '#FFF',\r\n        backgroundColor: '#80a0b8',\r\n      },\r\n    }),\r\n    control: (styles: any, state: any) => ({\r\n      ...styles,\r\n      borderColor:\r\n        state.isSelected || state.isFocused ? '#3f69ab' : 'rgba(0, 0, 0, 0.3)',\r\n\r\n      '&:hover': {\r\n        borderColor:\r\n          state.isFocused || state.isSelected ? '#3f69ab' : 'rgba(0, 0, 0)',\r\n      },\r\n    }),\r\n  };\r\n\r\n  useEffect(() => {\r\n    registerField({\r\n      name: fieldName,\r\n      ref: selectRef.current,\r\n      getValue: (ref: any) => {\r\n        if (isMulti) {\r\n          if (!ref.state.value) {\r\n            return [];\r\n          }\r\n          return ref.state.value.map((option: OptionTypeBase) => option.value);\r\n        }\r\n        if (!ref.state.value) {\r\n          return '';\r\n        }\r\n        return ref.state.value.value;\r\n      },\r\n    });\r\n  }, [fieldName, registerField, isMulti]);\r\n\r\n  return (\r\n    <>\r\n      <div style={{ marginTop: '5px' }}>\r\n        <ReactSelect\r\n          styles={style}\r\n          isSearchable\r\n          defaultValue={defaultValue}\r\n          ref={selectRef}\r\n          classNamePrefix=\"react-select\"\r\n          {...rest}\r\n        />\r\n\r\n        {!!error && <span style={{ color: 'red' }}>{error}</span>}\r\n      </div>\r\n    </>\r\n  );\r\n};\r\n\r\nexport default Select;\r\n","import React, { useState } from 'react';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\n\r\nexport interface AlertComponentProps {\r\n  type: 'success' | 'info' | 'warning' | 'error';\r\n  message: string;\r\n  onClose?(): void;\r\n}\r\n\r\nconst Alert: React.FC<AlertComponentProps> = ({\r\n  type,\r\n  message,\r\n  onClose,\r\n  ...rest\r\n}) => {\r\n  const [open, setOpen] = useState(true);\r\n\r\n  const handleClose = (event?: React.SyntheticEvent, reason?: string) => {\r\n    if (reason === 'clickaway') {\r\n      return;\r\n    }\r\n\r\n    setOpen(false);\r\n    if (onClose) onClose();\r\n  };\r\n\r\n  return (\r\n    <Snackbar\r\n      open={open}\r\n      autoHideDuration={4000}\r\n      anchorOrigin={{ vertical: 'top', horizontal: 'right' }}\r\n      onClose={handleClose}\r\n    >\r\n      <MuiAlert onClose={handleClose} elevation={6} severity={type} {...rest}>\r\n        {message}\r\n      </MuiAlert>\r\n    </Snackbar>\r\n  );\r\n};\r\n\r\nexport default Alert;\r\n","import React, { useCallback, useEffect, useState, useRef } from 'react';\r\nimport moment from 'moment';\r\n\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  TextField,\r\n  Paper,\r\n  Table,\r\n  TableBody,\r\n  TableCell,\r\n  TableContainer,\r\n  TableHead,\r\n  TableRow,\r\n  Typography,\r\n  IconButton,\r\n  TablePagination,\r\n  Grid,\r\n} from '@mui/material';\r\n\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport { Visibility } from '@material-ui/icons';\r\n\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport Loader from '../../../components/Loader';\r\nimport { Record } from '../../../models/record';\r\n\r\nimport { useStyles, StyledTableCell } from './styles';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport { getChip } from '../../../utils/getChip';\r\nimport Select from '../../../components/Select';\r\nimport { SelectProps } from '../../Records/List/dto';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\n\r\nfunction getSufix(label: string) {\r\n  return label !== 'online' ? ' D' : '';\r\n}\r\n\r\nconst MyRecords: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const api = useAxios();\r\n  const [myRecords, setMyRecords] = useState<Record[]>([]);\r\n  const [loading, setLoading] = useState(true);\r\n  const [page, setPage] = useState(0);\r\n  const [rowsPerPage, setRowsPerPage] = useState(4);\r\n  const formRef = useRef<FormHandles>(null);\r\n  const [date, setDate] = useState<Date | null>(null);\r\n  const [patients, setPatients] = useState<SelectProps[]>([]);\r\n  const [numbers, setNumbers] = useState<SelectProps[]>([]);\r\n  const [filters, setFilters] = useState('');\r\n  const [filterTypes, setFilterTypes] = useState({\r\n    type: '',\r\n    status: '',\r\n    patient: '',\r\n    number: '',\r\n    date: '',\r\n  });\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getMyRecords() {\r\n      try {\r\n        const myRecordsResponse = await api.current?.get(\r\n          `/records/my-records?${filters}`,\r\n        );\r\n\r\n        setMyRecords(myRecordsResponse?.data);\r\n        setPatients(\r\n          myRecordsResponse?.data.map((record: Record) => {\r\n            return {\r\n              value: record.patient._id,\r\n              label: record.patient.name,\r\n            };\r\n          }),\r\n        );\r\n\r\n        setNumbers(\r\n          myRecordsResponse?.data.map((record: Record) => {\r\n            return {\r\n              value: String(record.number),\r\n              label: record.number,\r\n            };\r\n          }),\r\n        );\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao buscar meus prontuários.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getMyRecords();\r\n  }, [api, filters]);\r\n\r\n  const handleChangePage = (event: any, newPage: any) => {\r\n    setPage(newPage);\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event: any) => {\r\n    setRowsPerPage(+event.target.value);\r\n    setPage(0);\r\n  };\r\n\r\n  const handleFilters = useCallback(\r\n    (type: string, data: any) => {\r\n      setLoading(true);\r\n\r\n      switch (type) {\r\n        case 'type':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            type: data && data.value ? `&type=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'status':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            status: data && data.value ? `&status=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'patient':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            patient: data && data.value ? `&patient=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'number':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            number: data && data.value ? `&number=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'date':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            date: data ? `&date=${moment(data).format('YYYY-MM-DD')}` : '',\r\n          });\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n    },\r\n    [filterTypes],\r\n  );\r\n\r\n  useEffect(() => {\r\n    setFilters(\r\n      filterTypes.type +\r\n        filterTypes.status +\r\n        filterTypes.patient +\r\n        filterTypes.number +\r\n        filterTypes.date,\r\n    );\r\n\r\n    setPage(0);\r\n  }, [filterTypes]);\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      <Form ref={formRef} initialData={{}} onSubmit={handleFilters}>\r\n        <Grid container className={classes.filter}>\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"type\"\r\n              isMulti={false}\r\n              placeholder=\"Tipo\"\r\n              isClearable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('type', e)}\r\n              options={[\r\n                { value: 'online', label: 'Online' },\r\n                { value: 'scanned', label: 'Digitalizado' },\r\n              ]}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"status\"\r\n              isMulti={false}\r\n              placeholder=\"Status\"\r\n              isClearable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('status', e)}\r\n              options={[\r\n                { value: 'active', label: 'Ativo' },\r\n                { value: 'closed', label: 'Encerrado' },\r\n              ]}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"patient\"\r\n              isMulti={false}\r\n              placeholder=\"Paciente\"\r\n              isClearable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('patient', e)}\r\n              options={patients}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"number\"\r\n              isMulti={false}\r\n              placeholder=\"Número\"\r\n              isClearable\r\n              isSearchable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('number', e)}\r\n              options={numbers}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2} />\r\n\r\n          <Grid item xs={2}>\r\n            <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n              <DesktopDatePicker\r\n                label=\"Data\"\r\n                inputFormat=\"dd/MM/yyyy\"\r\n                value={date}\r\n                className={classes.item}\r\n                onChange={(d) => {\r\n                  setDate(d);\r\n                  handleFilters('date', d);\r\n                }}\r\n                renderInput={(params) => <TextField {...params} />}\r\n              />\r\n            </LocalizationProvider>\r\n          </Grid>\r\n        </Grid>\r\n      </Form>\r\n\r\n      <TableContainer\r\n        component={Paper}\r\n        style={{ display: !loading ? '' : 'none', marginBottom: '2%' }}\r\n      >\r\n        <Table className={classes.table}>\r\n          <TableHead>\r\n            <TableRow>\r\n              <StyledTableCell>Paciente</StyledTableCell>\r\n              <StyledTableCell>Número</StyledTableCell>\r\n              <StyledTableCell>Última Atualização</StyledTableCell>\r\n              <StyledTableCell>Status</StyledTableCell>\r\n              <StyledTableCell>Tipo</StyledTableCell>\r\n              <StyledTableCell align=\"center\">Visualizar</StyledTableCell>\r\n            </TableRow>\r\n          </TableHead>\r\n\r\n          <TableBody>\r\n            {!myRecords.length && (\r\n              <TableRow>\r\n                <TableCell component=\"th\" scope=\"row\" colSpan={7}>\r\n                  <Typography>Nenhum prontuário encontrado.</Typography>\r\n                </TableCell>\r\n              </TableRow>\r\n            )}\r\n\r\n            {(rowsPerPage > 0\r\n              ? myRecords.slice(\r\n                  page * rowsPerPage,\r\n                  page * rowsPerPage + rowsPerPage,\r\n                )\r\n              : myRecords\r\n            ).map((record) => (\r\n              <TableRow key={record._id}>\r\n                <TableCell>\r\n                  {record?.patient?.name || '--'}\r\n\r\n                  {record?.patient2 && ` / ${record?.patient2?.name}`}\r\n                </TableCell>\r\n\r\n                <TableCell>\r\n                  {`${record.number}${getSufix(record.type)}`}\r\n                </TableCell>\r\n                <TableCell>\r\n                  {moment(record.updatedAt).format('DD/MM/YYYY HH:mm')}\r\n                </TableCell>\r\n                <TableCell>{getChip(record.status)}</TableCell>\r\n                <TableCell>{getChip(record.type)}</TableCell>\r\n                <TableCell align=\"center\">\r\n                  <IconButton\r\n                    onClick={() => {\r\n                      history.push(`/meus-prontuarios/${record._id}`);\r\n                    }}\r\n                    color=\"primary\"\r\n                  >\r\n                    <Visibility />\r\n                  </IconButton>\r\n                </TableCell>\r\n              </TableRow>\r\n            ))}\r\n          </TableBody>\r\n        </Table>\r\n\r\n        <TablePagination\r\n          rowsPerPageOptions={[5, 10, 25, 100]}\r\n          component=\"div\"\r\n          count={myRecords.length}\r\n          rowsPerPage={rowsPerPage}\r\n          labelRowsPerPage={<span>Prontuários por página:</span>}\r\n          labelDisplayedRows={({ count, from, to }) => {\r\n            return `${from} - ${to} de ${count}`;\r\n          }}\r\n          page={page}\r\n          onPageChange={handleChangePage}\r\n          onRowsPerPageChange={handleChangeRowsPerPage}\r\n        />\r\n      </TableContainer>\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default MyRecords;\r\n","import {\r\n  createStyles,\r\n  makeStyles,\r\n  TableCell,\r\n  Theme,\r\n  withStyles,\r\n} from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles({\r\n  table: {\r\n    minWidth: 650,\r\n  },\r\n  filter: {\r\n    marginTop: '1%',\r\n    marginBottom: '1%',\r\n  },\r\n  item: {\r\n    paddingRight: '4%',\r\n  },\r\n});\r\n\r\nexport const StyledTableCell = withStyles((theme: Theme) =>\r\n  createStyles({\r\n    root: {\r\n      backgroundColor: theme.palette.primary.main,\r\n      color: theme.palette.background.default,\r\n    },\r\n    body: {\r\n      fontSize: 14,\r\n    },\r\n  }),\r\n)(TableCell);\r\n","import React, { useEffect, useState, useCallback, useRef } from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport moment from 'moment';\r\n\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Paper,\r\n  Table,\r\n  TableBody,\r\n  TableCell,\r\n  TableContainer,\r\n  TableHead,\r\n  TableRow,\r\n  Typography,\r\n  IconButton,\r\n  TablePagination,\r\n  Grid,\r\n  TextField,\r\n} from '@mui/material';\r\n\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport { Visibility } from '@material-ui/icons';\r\n\r\nimport { Tooltip } from '@material-ui/core';\r\nimport { useStyles, StyledTableCell } from './styles';\r\n\r\nimport Loader from '../../../components/Loader';\r\n\r\nimport { Record } from '../../../models/record';\r\n\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport { getChip } from '../../../utils/getChip';\r\nimport Select from '../../../components/Select';\r\nimport { SelectProps } from '../../Records/List/dto';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\n\r\nfunction getSufix(label: string) {\r\n  return label !== 'online' ? ' D' : '';\r\n}\r\n\r\nconst Supervision: React.FC = () => {\r\n  const classes = useStyles();\r\n  const api = useAxios();\r\n  const history = useHistory();\r\n  const [supervisions, setSupervisions] = useState<Record[]>([]);\r\n  const [loading, setLoading] = useState(true);\r\n  const [page, setPage] = useState(0);\r\n  const [rowsPerPage, setRowsPerPage] = useState(4);\r\n  const formRef = useRef<FormHandles>(null);\r\n  const [date, setDate] = useState<Date | null>(null);\r\n  const [patients, setPatients] = useState<SelectProps[]>([]);\r\n  const [numbers, setNumbers] = useState<SelectProps[]>([]);\r\n  const [filters, setFilters] = useState('');\r\n  const [filterTypes, setFilterTypes] = useState({\r\n    type: '',\r\n    status: '',\r\n    patient: '',\r\n    number: '',\r\n    date: '',\r\n  });\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getSupervisions() {\r\n      try {\r\n        const supervisionsResponse = await api.current?.get(\r\n          `/records/supervisors?${filters}`,\r\n        );\r\n\r\n        setSupervisions(supervisionsResponse?.data);\r\n\r\n        setPatients(\r\n          supervisionsResponse?.data.map((record: Record) => {\r\n            return {\r\n              value: record.patient._id,\r\n              label: record.patient.name,\r\n            };\r\n          }),\r\n        );\r\n\r\n        setNumbers(\r\n          supervisionsResponse?.data.map((record: Record) => {\r\n            return {\r\n              value: String(record.number),\r\n              label: record.number,\r\n            };\r\n          }),\r\n        );\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao buscar prontuários.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getSupervisions();\r\n  }, [api, filters]);\r\n\r\n  const handleChangePage = (event: any, newPage: any) => {\r\n    setPage(newPage);\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event: any) => {\r\n    setRowsPerPage(+event.target.value);\r\n    setPage(0);\r\n  };\r\n\r\n  const handleFilters = useCallback(\r\n    (type: string, data: any) => {\r\n      setLoading(true);\r\n\r\n      switch (type) {\r\n        case 'type':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            type: data && data.value ? `&type=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'status':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            status: data && data.value ? `&status=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'patient':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            patient: data && data.value ? `&patient=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'number':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            number: data && data.value ? `&number=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'date':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            date: data ? `&date=${moment(data).format('YYYY-MM-DD')}` : '',\r\n          });\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n    },\r\n    [filterTypes],\r\n  );\r\n\r\n  useEffect(() => {\r\n    setFilters(\r\n      filterTypes.type +\r\n        filterTypes.status +\r\n        filterTypes.patient +\r\n        filterTypes.number +\r\n        filterTypes.date,\r\n    );\r\n\r\n    setPage(0);\r\n  }, [filterTypes]);\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      <Form ref={formRef} initialData={{}} onSubmit={handleFilters}>\r\n        <Grid container className={classes.filter}>\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"type\"\r\n              isMulti={false}\r\n              placeholder=\"Tipo\"\r\n              isClearable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('type', e)}\r\n              options={[\r\n                { value: 'online', label: 'Online' },\r\n                { value: 'scanned', label: 'Digitalizado' },\r\n              ]}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"status\"\r\n              isMulti={false}\r\n              placeholder=\"Status\"\r\n              isClearable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('status', e)}\r\n              options={[\r\n                { value: 'active', label: 'Ativo' },\r\n                { value: 'closed', label: 'Encerrado' },\r\n              ]}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"patient\"\r\n              isMulti={false}\r\n              placeholder=\"Paciente\"\r\n              isClearable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('patient', e)}\r\n              options={patients}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"number\"\r\n              isMulti={false}\r\n              placeholder=\"Número\"\r\n              isClearable\r\n              isSearchable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('number', e)}\r\n              options={numbers}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2} />\r\n\r\n          <Grid item xs={2}>\r\n            <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n              <DesktopDatePicker\r\n                label=\"Data\"\r\n                inputFormat=\"dd/MM/yyyy\"\r\n                value={date}\r\n                className={classes.item}\r\n                onChange={(d) => {\r\n                  setDate(d);\r\n                  handleFilters('date', d);\r\n                }}\r\n                renderInput={(params) => <TextField {...params} />}\r\n              />\r\n            </LocalizationProvider>\r\n          </Grid>\r\n        </Grid>\r\n      </Form>\r\n\r\n      <TableContainer\r\n        component={Paper}\r\n        style={{ display: !loading ? '' : 'none', marginBottom: '2%' }}\r\n      >\r\n        <Table className={classes.table}>\r\n          <TableHead>\r\n            <TableRow>\r\n              <StyledTableCell>Terapeuta</StyledTableCell>\r\n              <StyledTableCell>Paciente</StyledTableCell>\r\n              <StyledTableCell>Número</StyledTableCell>\r\n              <StyledTableCell>Última Atualização</StyledTableCell>\r\n              <StyledTableCell>Status</StyledTableCell>\r\n              <StyledTableCell>Tipo</StyledTableCell>\r\n              <StyledTableCell align=\"center\">Visualizar</StyledTableCell>\r\n            </TableRow>\r\n          </TableHead>\r\n\r\n          <TableBody>\r\n            {!supervisions.length && (\r\n              <TableRow>\r\n                <TableCell component=\"th\" scope=\"row\" colSpan={7}>\r\n                  <Typography>Nenhum prontuário encontrado.</Typography>\r\n                </TableCell>\r\n              </TableRow>\r\n            )}\r\n\r\n            {(rowsPerPage > 0\r\n              ? supervisions.slice(\r\n                  page * rowsPerPage,\r\n                  page * rowsPerPage + rowsPerPage,\r\n                )\r\n              : supervisions\r\n            ).map((record) => (\r\n              <TableRow key={record._id}>\r\n                <TableCell component=\"th\" scope=\"row\">\r\n                  <Tooltip title={record?.professional.join(', ')}>\r\n                    <span>\r\n                      {`${record?.professional[0] || '--'}${\r\n                        record?.professional.length > 1 ? ', ...' : ''\r\n                      }`}\r\n                    </span>\r\n                  </Tooltip>\r\n                </TableCell>\r\n\r\n                <TableCell>\r\n                  {record?.patient?.name || '--'}\r\n\r\n                  {record?.patient2 && ` / ${record?.patient2?.name}`}\r\n                </TableCell>\r\n\r\n                <TableCell>\r\n                  {`${record.number}${getSufix(record.type)}`}\r\n                </TableCell>\r\n                <TableCell>\r\n                  {moment(record.updatedAt).format('DD/MM/YYYY HH:mm')}\r\n                </TableCell>\r\n                <TableCell>{getChip(record.status)}</TableCell>\r\n                <TableCell>{getChip(record.type)}</TableCell>\r\n                <TableCell align=\"center\">\r\n                  <IconButton\r\n                    onClick={() => {\r\n                      history.push(`/prontuarios/${record._id}`);\r\n                    }}\r\n                    color=\"primary\"\r\n                  >\r\n                    <Visibility />\r\n                  </IconButton>\r\n                </TableCell>\r\n              </TableRow>\r\n            ))}\r\n          </TableBody>\r\n        </Table>\r\n\r\n        <TablePagination\r\n          rowsPerPageOptions={[5, 10, 25, 100]}\r\n          component=\"div\"\r\n          count={supervisions.length}\r\n          rowsPerPage={rowsPerPage}\r\n          labelRowsPerPage={<span>Prontuários por página:</span>}\r\n          labelDisplayedRows={({ count, from, to }) => {\r\n            return `${from} - ${to} de ${count}`;\r\n          }}\r\n          page={page}\r\n          onPageChange={handleChangePage}\r\n          onRowsPerPageChange={handleChangeRowsPerPage}\r\n        />\r\n      </TableContainer>\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default Supervision;\r\n","import {\r\n  createStyles,\r\n  makeStyles,\r\n  TableCell,\r\n  Theme,\r\n  withStyles,\r\n} from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles({\r\n  table: {\r\n    minWidth: 650,\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  filter: {\r\n    display: 'flex',\r\n    alignItems: 'center',\r\n    marginBottom: '1%',\r\n  },\r\n  item: {\r\n    paddingRight: '4%',\r\n  },\r\n  paper: {\r\n    padding: '6px 16px',\r\n  },\r\n  content: {\r\n    padding: '2%',\r\n  },\r\n  opposite: {\r\n    maxWidth: '30%',\r\n  },\r\n});\r\n\r\nexport const StyledTableCell = withStyles((theme: Theme) =>\r\n  createStyles({\r\n    root: {\r\n      backgroundColor: theme.palette.primary.main,\r\n      color: theme.palette.background.default,\r\n    },\r\n    body: {\r\n      fontSize: 14,\r\n    },\r\n  }),\r\n)(TableCell);\r\n","import React from 'react';\r\nimport {\r\n  ArrowUpward,\r\n  PersonAddOutlined,\r\n  OpenInBrowser,\r\n  AssignmentIndOutlined,\r\n  HouseOutlined,\r\n  AssessmentOutlined,\r\n  RateReviewOutlined,\r\n  Close,\r\n  MoneyOff,\r\n  DirectionsWalk,\r\n  Assignment,\r\n  Cancel,\r\n} from '@material-ui/icons';\r\n\r\nimport {\r\n  FamilyRestroom,\r\n  Psychology,\r\n  Reviews,\r\n  SocialDistance,\r\n  Event,\r\n  ArrowForward,\r\n  Restaurant,\r\n  Group,\r\n  ChildCare as Baby,\r\n  EscalatorWarning,\r\n  UploadFile,\r\n  IntegrationInstructions,\r\n} from '@mui/icons-material';\r\n\r\nexport interface IProgressTypesIcons {\r\n  [key: string]: any;\r\n}\r\n\r\nexport const progressTypeIcons: IProgressTypesIcons = {\r\n  adoption: <FamilyRestroom />,\r\n  declaration: <IntegrationInstructions />,\r\n  update: <UploadFile />,\r\n  foodForward: <Restaurant />,\r\n  groupForward: <Group />,\r\n  clinicForward: <DirectionsWalk />,\r\n  consultantRequest: <Restaurant />,\r\n  evolution: <ArrowUpward />,\r\n  monthlyEvolution: <ArrowUpward />,\r\n  register: <PersonAddOutlined />,\r\n  init: <OpenInBrowser />,\r\n  parentInit: <EscalatorWarning />,\r\n  screening: <AssignmentIndOutlined />,\r\n  babyScreening: <Baby />,\r\n  hosting: <HouseOutlined />,\r\n  assessment: <AssessmentOutlined />,\r\n  review: <RateReviewOutlined />,\r\n  forwarding: <ArrowForward />,\r\n  socialService: <SocialDistance />,\r\n  parents: <FamilyRestroom />,\r\n  psychopedagogy: <Psychology />,\r\n  closure: <Close />,\r\n  discount: <MoneyOff />,\r\n  diagnosis: <Reviews />,\r\n  psychiatric: <Assignment />,\r\n  quarterplan: <Event />,\r\n  monthlyNutritionEvolution: <Restaurant />,\r\n  psychiatryEvolution: <Assignment />,\r\n  inactivateRecord: <Cancel />,\r\n};\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport moment from 'moment';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Paper,\r\n  Table,\r\n  TableBody,\r\n  TableCell,\r\n  TableContainer,\r\n  TableHead,\r\n  TableRow,\r\n  Typography,\r\n  IconButton,\r\n  Grid,\r\n  TablePagination,\r\n  TextField,\r\n  Tooltip,\r\n} from '@mui/material';\r\n\r\nimport {\r\n  Archive,\r\n  Check,\r\n  Link as LinkIcon,\r\n  Visibility,\r\n  History,\r\n  Send as SentIcon,\r\n  Add as CreatedIcon,\r\n  RemoveRedEye as ReviewedIcon,\r\n  Archive as ArchivedIcon,\r\n  HourglassEmpty,\r\n  Check as ApprovedIcon,\r\n} from '@material-ui/icons';\r\n\r\nimport {\r\n  DesktopDatePicker,\r\n  LocalizationProvider,\r\n  TimelineOppositeContent,\r\n} from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport { Reviews } from '@mui/icons-material';\r\n\r\nimport { green, red, yellow } from '@material-ui/core/colors';\r\nimport {\r\n  Button,\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  DialogTitle,\r\n  Divider,\r\n  FormLabel,\r\n  Link,\r\n  ListItemIcon,\r\n  Menu,\r\n  MenuItem,\r\n  colors,\r\n} from '@material-ui/core';\r\nimport ReactSelect from 'react-select';\r\nimport {\r\n  TimelineContent,\r\n  TimelineDot,\r\n  TimelineItem,\r\n  TimelineSeparator,\r\n} from '@material-ui/lab';\r\nimport { useStyles, StyledTableCell } from './styles';\r\n\r\nimport { useAxios } from '../../utils/hooks';\r\nimport { getChip } from '../../utils/getChip';\r\nimport { Request } from '../../models/request';\r\nimport { Record } from '../../models/record';\r\nimport Loader from '../../components/Loader';\r\nimport Select from '../../components/Select';\r\nimport { progressTypeIcons } from '../../utils/getProgressIcon';\r\nimport Snackbar, { AlertComponentProps } from '../../components/Snackbar';\r\nimport { SelectProps } from '../Records/List/dto';\r\nimport { User } from '../../models/user';\r\nimport { FormHistory } from '../../models/history';\r\n\r\nconst RequestTypes: { [key: string]: string } = {\r\n  init_form: 'Ficha Inicial',\r\n  adoption: 'Ficha de Contato Inicial MP',\r\n  update: 'Atualização Cadastral',\r\n  parent_init_form: 'Atendimento a Pais e/ou Responsáveis',\r\n  discount: 'Pedido Redução de Valor',\r\n  forwarding: 'Encaminhamento Terapeuta',\r\n  closure: 'Encerramento do Atendimento',\r\n};\r\n\r\nconst TypeToUrl = (\r\n  type: string,\r\n  resource_id: string,\r\n  // record: string | null = null,\r\n): string => {\r\n  switch (type) {\r\n    case 'init_form':\r\n      return `/formularios/inicial/${resource_id}`;\r\n    case 'parent_init_form':\r\n      return `/formularios/inicial-responsaveis/${resource_id}`;\r\n    case 'adoption':\r\n      return `/formularios/inicial-adocao/${resource_id}`;\r\n    case 'update':\r\n      return `/formularios/atualizacao-cadastral/${resource_id}`;\r\n    // case 'discount':\r\n    //   return `/prontuarios/${record}/formularios/reducao-valor/${resource_id}`;\r\n    // case 'forwarding':\r\n    //   return `/prontuarios/${record}/formularios/encaminhamento-terapeuta/${resource_id}`;\r\n    // case 'closure':\r\n    //   return `/prontuarios/${record}/formularios/encerramento-atendimento/${resource_id}`;\r\n    default:\r\n      return '';\r\n  }\r\n};\r\n\r\nconst eventToTitle = (event: string): string => {\r\n  switch (event) {\r\n    case 'created':\r\n      return 'Link único para ficha gerado pelo CEAPIA';\r\n    case 'sent':\r\n      return 'Ficha enviada para o CEAPIA';\r\n    case 'reviewed':\r\n      return 'Revisão de ficha solicitada pelo CEAPIA';\r\n    case 'archived':\r\n      return 'Ficha arquivada pelo CEAPIA';\r\n    case 'approved':\r\n      return 'Ficha aprovada pelo CEAPIA';\r\n    default:\r\n      return 'Ação não identificada';\r\n  }\r\n};\r\n\r\nconst eventToIcon = (event: string) => {\r\n  switch (event) {\r\n    case 'created':\r\n      return <CreatedIcon />;\r\n    case 'sent':\r\n      return <SentIcon />;\r\n    case 'reviewed':\r\n      return <ReviewedIcon />;\r\n    case 'archived':\r\n      return <ArchivedIcon />;\r\n    case 'approved':\r\n      return <ApprovedIcon />;\r\n    default:\r\n      return <HourglassEmpty />;\r\n  }\r\n};\r\n\r\nconst eventToColor = (event: string) => {\r\n  switch (event) {\r\n    case 'created':\r\n      return colors.blue[700];\r\n    case 'sent':\r\n      return colors.yellow[700];\r\n    case 'reviewed':\r\n      return colors.yellow[700];\r\n    case 'archived':\r\n      return colors.red[700];\r\n    case 'approved':\r\n      return colors.green[700];\r\n    default:\r\n      return <HourglassEmpty />;\r\n  }\r\n};\r\n\r\nconst screeningEmails = [\r\n  'karla.fonseca@ceapia.com.br',\r\n  'juliana.santos@ceapia.com.br',\r\n  'daniela.lajus@ceapia.com.br',\r\n  'mariana.santin@ceapia.com.br',\r\n  'viviane.valmorbida@ceapia.com.br',\r\n  'milene.merg@ceapia.com.br',\r\n  'manoela.silva@ceapia.com.br',\r\n  'fernanda.amorim@ceapia.com.br',\r\n  'julia.foster@ceapia.com.br',\r\n];\r\n\r\nconst Requests: React.FC = () => {\r\n  const api = useAxios();\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const [requests, setRequests] = useState<Request[]>([]);\r\n  const [formHistory, setFormHistory] = useState<FormHistory[]>([]);\r\n  const [anchorEl, setAnchorEl] = useState(null);\r\n  const [idToApp, setIdToApp] = useState<string>('');\r\n  const openMenu = Boolean(anchorEl);\r\n  const [link, setLink] = useState('');\r\n  const [linkOpen, setLinkOpen] = useState(false);\r\n  const [openCloseRecord, setOpenCloseRecord] = useState(false);\r\n  const [openUpdateRecord, setOpenUpdateRecord] = useState(false);\r\n  const [historyOpen, setHistoryOpen] = useState(false);\r\n  const [page, setPage] = useState(0);\r\n  const [recordId, setRecordId] = useState<string>('');\r\n  const [recordNumber, setRecordNumber] = useState<number>(0);\r\n  const [recordNumbers, setRecordNumbers] = useState<SelectProps[]>([]);\r\n  const [rowsPerPage, setRowsPerPage] = useState(4);\r\n  const formRef = useRef<FormHandles>(null);\r\n  const [open, setOpen] = useState(false);\r\n  const [proUsers, setProUsers] = useState<SelectProps[]>([]);\r\n  const [coordUsers, setCoordUsers] = useState<SelectProps[]>([]);\r\n  const [professionals, setProfessionals] = useState<SelectProps[]>([]);\r\n  const [coordinators, setCoordinators] = useState<SelectProps[]>([]);\r\n  const formFilterRef = useRef<FormHandles>(null);\r\n  const [date, setDate] = useState<Date | null>(null);\r\n  const [filters, setFilters] = useState('');\r\n  const [filterTypes, setFilterTypes] = useState({\r\n    type: '',\r\n    status: '',\r\n    date: '',\r\n  });\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRequests() {\r\n      try {\r\n        const requestsResponse = await api.current?.get(`/requests?${filters}`);\r\n\r\n        setRequests(requestsResponse?.data);\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao buscar aprovações.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRequests();\r\n  }, [api, filters]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleReview = useCallback(\r\n    async (id: string) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n\r\n        await api.current?.patch(`/requests/${id}/review`);\r\n\r\n        const currentRequests = requests;\r\n        const index = currentRequests.findIndex(\r\n          ({ _id: currentRequestId }) => currentRequestId === id,\r\n        );\r\n\r\n        currentRequests[index].status = 'review';\r\n\r\n        setRequests(currentRequests);\r\n        setLoading(false);\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Solicitação de revisão realizada com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        setLoading(false);\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao solicitar revisão.',\r\n        });\r\n      }\r\n    },\r\n    [api, requests],\r\n  );\r\n\r\n  const handleArchive = useCallback(\r\n    async (id: string) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n\r\n        await api.current?.patch(`/requests/${id}/archive`);\r\n\r\n        const currentRequests = requests;\r\n        const index = currentRequests.findIndex(\r\n          ({ _id: currentRequestId }) => currentRequestId === id,\r\n        );\r\n\r\n        currentRequests[index].status = 'archived';\r\n\r\n        setRequests(currentRequests);\r\n        setLoading(false);\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Avaliação arquivada com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        setLoading(false);\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao arquivar avaliação.',\r\n        });\r\n      }\r\n    },\r\n    [api, requests],\r\n  );\r\n\r\n  const handleOpenApprove = useCallback(\r\n    async (id: string) => {\r\n      setLoading(true);\r\n      resetAlert();\r\n\r\n      try {\r\n        const usersResponse = await api.current?.get('/users');\r\n\r\n        if (usersResponse?.data) {\r\n          setProUsers(\r\n            usersResponse.data\r\n              .filter(\r\n                (user: User) =>\r\n                  !user.attributes ||\r\n                  (user.attributes && !user.attributes.coordenador),\r\n              )\r\n              // .filter((user: User) => screeningEmails.includes(user.email))\r\n              .map((user: User) => ({\r\n                value: user.id,\r\n                label: `${user.firstName} ${user.lastName}`,\r\n              })),\r\n          );\r\n\r\n          setCoordUsers(\r\n            usersResponse.data\r\n              .filter(\r\n                (user: User) =>\r\n                  user.attributes &&\r\n                  user.attributes.coordenador &&\r\n                  user.attributes.coordenador[0] === 'true',\r\n              )\r\n              .map((user: User) => ({\r\n                value: user.id,\r\n                label: `${user.firstName} ${user.lastName}`,\r\n              })),\r\n          );\r\n        }\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Dados de formuário carregados com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar dados.',\r\n        });\r\n      } finally {\r\n        setOpen(true);\r\n        setIdToApp(id);\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [api],\r\n  );\r\n\r\n  const handleDirectApprove = useCallback(\r\n    async (requestId: string) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n\r\n        await api.current?.patch(`/requests/${requestId}/approve`);\r\n\r\n        const currentRequests = requests;\r\n        const index = currentRequests.findIndex(\r\n          ({ _id: currentRequestId }) => currentRequestId === requestId,\r\n        );\r\n\r\n        currentRequests[index].status = 'approved';\r\n\r\n        setRequests(currentRequests);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Aprovação realizada com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: error.response.data.message,\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [api, requests],\r\n  );\r\n\r\n  const handleApprove = useCallback(async () => {\r\n    try {\r\n      setLoading(true);\r\n      resetAlert();\r\n\r\n      if (!coordinators.length && !professionals.length) {\r\n        throw new Error('Preencha ao menos um coordenador.');\r\n      }\r\n\r\n      await api.current?.patch(`/requests/${idToApp}/approve`, {\r\n        professional_id: [\r\n          ...professionals.map((pro) => pro.value),\r\n          ...coordinators.map((coord) => coord.value),\r\n        ],\r\n        professional: [\r\n          ...professionals.map((pro) => pro.label),\r\n          ...coordinators.map((coord) => coord.label),\r\n        ],\r\n      });\r\n\r\n      const currentRequests = requests;\r\n      const index = currentRequests.findIndex(\r\n        ({ _id: currentRequestId }) => currentRequestId === idToApp,\r\n      );\r\n\r\n      currentRequests[index].status = 'approved';\r\n\r\n      setRequests(currentRequests);\r\n      setLoading(false);\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Aprovação realizada com sucesso.',\r\n      });\r\n\r\n      setOpen(false);\r\n      setIdToApp('');\r\n    } catch (error) {\r\n      resetAlert();\r\n      setLoading(false);\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'error',\r\n        message: error.response.data.message,\r\n      });\r\n    }\r\n  }, [api, requests, coordinators, professionals, idToApp]);\r\n\r\n  const handleChangePage = (event: any, newPage: any) => {\r\n    setPage(newPage);\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event: any) => {\r\n    setRowsPerPage(+event.target.value);\r\n    setPage(0);\r\n  };\r\n\r\n  const handleLinkClose = () => {\r\n    setLinkOpen(false);\r\n    setLink('');\r\n  };\r\n\r\n  const handleCloseRecord = () => {\r\n    setOpenCloseRecord(false);\r\n    setRecordId('');\r\n  };\r\n\r\n  const handleHistoryClose = () => {\r\n    setHistoryOpen(false);\r\n  };\r\n\r\n  const handleOpenHistory = useCallback(\r\n    async (formId: string) => {\r\n      resetAlert();\r\n      setLoading(true);\r\n      setAnchorEl(null);\r\n      setLink('--');\r\n\r\n      try {\r\n        const historyResponse = await api.current?.get(\r\n          `/forms/${formId}/history`,\r\n        );\r\n\r\n        if (historyResponse?.data) {\r\n          setFormHistory(historyResponse?.data);\r\n        } else {\r\n          throw new Error();\r\n        }\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Histórico carregado com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar histórico.',\r\n        });\r\n      } finally {\r\n        setHistoryOpen(true);\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [api],\r\n  );\r\n\r\n  const handleClickLinkOpen = useCallback(\r\n    async (type: string, recordNumber?: number) => {\r\n      resetAlert();\r\n      setLoading(true);\r\n      setAnchorEl(null);\r\n      setOpenUpdateRecord(false);\r\n      setLink('--');\r\n\r\n      try {\r\n        const linkResponse = await api.current?.post('/forms/token', {\r\n          type,\r\n          recordNumber,\r\n        });\r\n        let path;\r\n        switch (type) {\r\n          case 'init':\r\n            path = 'formularios/inicial';\r\n            break;\r\n          case 'parentInit':\r\n            path = 'formularios/inicial-responsaveis';\r\n            break;\r\n          case 'adoption':\r\n            path = 'formularios/inicial-adocao';\r\n            break;\r\n          case 'update':\r\n            path = 'formularios/atualizacao-cadastral';\r\n            break;\r\n          default:\r\n        }\r\n\r\n        if (linkResponse?.data && linkResponse?.data.form) {\r\n          setLink(\r\n            `${process.env.REACT_APP_CONTACT_URL}/${path}/${linkResponse.data.form}?token=${linkResponse.data.token}`,\r\n          );\r\n        } else {\r\n          throw new Error();\r\n        }\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Link gerado com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao gerar link.',\r\n        });\r\n      } finally {\r\n        setLinkOpen(true);\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [api],\r\n  );\r\n\r\n  const handleFilters = useCallback(\r\n    (type: string, data: any) => {\r\n      setLoading(true);\r\n\r\n      switch (type) {\r\n        case 'type':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            type: data && data.value ? `&type=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'status':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            status: data && data.value ? `&status=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'date':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            date: data ? `&date=${moment(data).format('YYYY-MM-DD')}` : '',\r\n          });\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n    },\r\n    [filterTypes],\r\n  );\r\n\r\n  const handleProfessionalSelect = (list: any) => {\r\n    setProfessionals(list);\r\n  };\r\n\r\n  const handleCoordinatorSelect = (list: any) => {\r\n    setCoordinators(list);\r\n  };\r\n\r\n  const handleIdSelect = (data: any) => {\r\n    if (!data) {\r\n      setRecordId('');\r\n      return;\r\n    }\r\n\r\n    setRecordId(String(data.value));\r\n  };\r\n\r\n  const handleNumberSelect = (data: any) => {\r\n    if (!data) {\r\n      setRecordNumber(0);\r\n      return;\r\n    }\r\n\r\n    setRecordNumber(Number(data.label));\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleSubmitCloseRecord = useCallback(async () => {\r\n    resetAlert();\r\n    setLoading(true);\r\n\r\n    try {\r\n      await api.current?.patch(`/records/${recordId}`, {\r\n        status: 'closed',\r\n      });\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Prontuário encerrado com sucesso.',\r\n      });\r\n    } catch (error) {\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'error',\r\n        message: 'Erro ao encerrar prontuário.',\r\n      });\r\n    } finally {\r\n      setOpenCloseRecord(false);\r\n      setLoading(false);\r\n    }\r\n  }, [api, recordId]);\r\n\r\n  const handleOpenCloseRecord = useCallback(async () => {\r\n    resetAlert();\r\n    setLoading(true);\r\n    setAnchorEl(null);\r\n\r\n    try {\r\n      const recordResponse = await api.current?.get('/records');\r\n\r\n      if (recordResponse?.data) {\r\n        setRecordNumbers(\r\n          recordResponse.data.map((record: Record) => ({\r\n            value: record._id,\r\n            label: record.number,\r\n          })),\r\n        );\r\n      }\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Prontuários carregados com sucesso.',\r\n      });\r\n    } catch (error) {\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'error',\r\n        message: 'Erro ao carregar prontuário.',\r\n      });\r\n    } finally {\r\n      setOpenCloseRecord(true);\r\n      setLoading(false);\r\n    }\r\n  }, [api]);\r\n\r\n  const handleOpenUpdateRecord = useCallback(async () => {\r\n    resetAlert();\r\n    setLoading(true);\r\n    setAnchorEl(null);\r\n\r\n    try {\r\n      const recordResponse = await api.current?.get('/requests/recordNumbers');\r\n\r\n      if (recordResponse?.data) {\r\n        setRecordNumbers(\r\n          recordResponse.data.map((record: Record) => ({\r\n            value: record._id,\r\n            label: record.number,\r\n          })),\r\n        );\r\n      }\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Prontuários carregados com sucesso.',\r\n      });\r\n    } catch (error) {\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'error',\r\n        message: 'Erro ao carregar prontuário.',\r\n      });\r\n    } finally {\r\n      setOpenUpdateRecord(true);\r\n      setLoading(false);\r\n    }\r\n  }, [api]);\r\n\r\n  const handleCloseUpdateRecord = () => {\r\n    setOpenUpdateRecord(false);\r\n    setRecordNumber(0);\r\n  };\r\n\r\n  useEffect(() => {\r\n    setFilters(filterTypes.type + filterTypes.status + filterTypes.date);\r\n\r\n    setPage(0);\r\n  }, [filterTypes]);\r\n\r\n  const handleMenu = (event: any) => {\r\n    setAnchorEl(event.currentTarget);\r\n  };\r\n\r\n  const handleMenuClose = () => {\r\n    setAnchorEl(null);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      <Menu\r\n        id=\"basic-menu\"\r\n        anchorEl={anchorEl}\r\n        open={openMenu}\r\n        onClose={handleMenuClose}\r\n        MenuListProps={{\r\n          'aria-labelledby': 'basic-button',\r\n        }}\r\n      >\r\n        <MenuItem\r\n          /* prettier-ignore */\r\n          onClick={() =>\r\n               handleClickLinkOpen('init')}\r\n        >\r\n          <ListItemIcon>{progressTypeIcons.init}</ListItemIcon>\r\n          <Typography variant=\"inherit\">Ficha de Contato Inicial</Typography>\r\n        </MenuItem>\r\n\r\n        <Divider />\r\n\r\n        <MenuItem\r\n          /* prettier-ignore */\r\n          onClick={() =>\r\n               handleClickLinkOpen('parentInit')}\r\n        >\r\n          <ListItemIcon>{progressTypeIcons.parentInit}</ListItemIcon>\r\n          <Typography variant=\"inherit\">\r\n            Atendimento a Pais e/ou Responsáveis\r\n          </Typography>\r\n        </MenuItem>\r\n\r\n        <Divider />\r\n\r\n        <MenuItem\r\n          /* prettier-ignore */\r\n          onClick={() =>\r\n               handleClickLinkOpen('adoption')}\r\n        >\r\n          <ListItemIcon>{progressTypeIcons.adoption}</ListItemIcon>\r\n          <Typography variant=\"inherit\">Ficha de Contato Inicial MP</Typography>\r\n        </MenuItem>\r\n\r\n        <Divider />\r\n\r\n        <MenuItem\r\n          /* prettier-ignore */\r\n          onClick={() =>\r\n            handleOpenUpdateRecord()}\r\n        >\r\n          <ListItemIcon>{progressTypeIcons.update}</ListItemIcon>\r\n          <Typography variant=\"inherit\">\r\n            Ficha de atualização cadastral\r\n          </Typography>\r\n        </MenuItem>\r\n\r\n        <Divider />\r\n\r\n        {/* <MenuItem\r\n          onClick={() =>\r\n            handleOpenCloseRecord()}\r\n        >\r\n          <ListItemIcon>{progressTypeIcons.inactivateRecord}</ListItemIcon>\r\n          <Typography variant=\"inherit\">Encerrar Prontuário</Typography>\r\n        </MenuItem> */}\r\n      </Menu>\r\n\r\n      <Dialog\r\n        open={linkOpen}\r\n        onClose={handleLinkClose}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <DialogTitle id=\"form-dialog-title\">Link para ficha inical</DialogTitle>\r\n\r\n        <DialogContent>\r\n          <Link href={link} target=\"blank\">\r\n            {link}\r\n          </Link>\r\n        </DialogContent>\r\n\r\n        <DialogActions>\r\n          <Button onClick={handleLinkClose}>Fechar</Button>\r\n        </DialogActions>\r\n      </Dialog>\r\n\r\n      <Dialog\r\n        open={historyOpen}\r\n        onClose={handleHistoryClose}\r\n        fullWidth\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <DialogTitle id=\"form-dialog-title\">Histórico da Ficha</DialogTitle>\r\n\r\n        <DialogContent>\r\n          {formHistory.map((entry: FormHistory) => (\r\n            <TimelineItem key=\"empty\">\r\n              <TimelineOppositeContent className={classes.opposite}>\r\n                <Typography variant=\"body1\" color=\"textSecondary\">\r\n                  {moment(entry.updatedAt).format('DD/MM/YYYY HH:mm')}\r\n                </Typography>\r\n              </TimelineOppositeContent>\r\n              <TimelineSeparator>\r\n                <TimelineDot\r\n                  style={{ color: String(eventToColor(entry.event)) }}\r\n                  color=\"inherit\"\r\n                >\r\n                  {eventToIcon(entry.event)}\r\n                </TimelineDot>\r\n              </TimelineSeparator>\r\n              <TimelineContent className={classes.content}>\r\n                <Paper elevation={4} className={classes.paper}>\r\n                  <Typography variant=\"subtitle1\">\r\n                    {eventToTitle(entry.event)}\r\n                  </Typography>\r\n                </Paper>\r\n              </TimelineContent>\r\n            </TimelineItem>\r\n          ))}\r\n        </DialogContent>\r\n\r\n        <DialogActions>\r\n          <Button onClick={handleHistoryClose}>Fechar</Button>\r\n        </DialogActions>\r\n      </Dialog>\r\n\r\n      <Dialog\r\n        open={open}\r\n        onClose={handleClose}\r\n        aria-labelledby=\"form-dialog-title\"\r\n        fullWidth\r\n      >\r\n        <Form ref={formRef} onSubmit={handleApprove}>\r\n          <DialogTitle id=\"form-dialog-title\">Encaminhamento</DialogTitle>\r\n          {/*\r\n          <Grid item xs={12}>\r\n            <Divider />\r\n          </Grid> */}\r\n\r\n          <DialogContent style={{ minHeight: '40vh' }}>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Selecione um ou mais terapeutas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <ReactSelect\r\n                  closeMenuOnSelect={false}\r\n                  isMulti\r\n                  options={proUsers}\r\n                  onChange={handleProfessionalSelect}\r\n                  menuPosition=\"fixed\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12}>\r\n                <Divider />\r\n              </Grid>\r\n\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Selecione um ou mais coordenadores\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <ReactSelect\r\n                  closeMenuOnSelect={false}\r\n                  isMulti\r\n                  options={coordUsers}\r\n                  onChange={handleCoordinatorSelect}\r\n                  menuPosition=\"fixed\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n          <DialogActions>\r\n            <Button onClick={handleClose}>Cancelar</Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog>\r\n\r\n      <Dialog\r\n        open={openCloseRecord}\r\n        onClose={handleCloseRecord}\r\n        aria-labelledby=\"form-dialog-title\"\r\n        fullWidth\r\n      >\r\n        <DialogTitle id=\"form-dialog-title\">Encerrar Prontuário</DialogTitle>\r\n\r\n        <DialogContent style={{ minHeight: '40vh' }}>\r\n          <Grid container spacing={2} alignItems=\"center\">\r\n            <Grid item xs={12} />\r\n\r\n            <Grid item xs={12} />\r\n\r\n            <Grid item xs={12}>\r\n              <FormLabel className={classes.formTitles}>\r\n                Selecione o número do prontuário\r\n              </FormLabel>\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <ReactSelect\r\n                closeMenuOnSelect\r\n                options={recordNumbers}\r\n                onChange={(e) => handleIdSelect(e)}\r\n                menuPosition=\"fixed\"\r\n                isClearable\r\n              />\r\n            </Grid>\r\n\r\n            {recordId !== '' && (\r\n              <>\r\n                <Grid item xs={12} />\r\n                <Grid item xs={12} />\r\n\r\n                <Grid item xs={12}>\r\n                  <FormLabel\r\n                    className={classes.formTitles}\r\n                    style={{\r\n                      padding: '1%',\r\n                      fontSize: '1.1rem',\r\n                    }}\r\n                  >\r\n                    {`Tem certeza que deseja encerrar o prontuário de número ${\r\n                      recordNumbers.find((record) => record.value === recordId)\r\n                        ?.label\r\n                    }?`}\r\n                  </FormLabel>\r\n                </Grid>\r\n              </>\r\n            )}\r\n          </Grid>\r\n        </DialogContent>\r\n\r\n        <DialogActions>\r\n          <Button onClick={handleCloseRecord}>Cancelar</Button>\r\n          {recordId !== '' && (\r\n            <Button\r\n              variant=\"contained\"\r\n              onClick={() => handleSubmitCloseRecord()}\r\n              style={{ background: red[700], color: '#fff' }}\r\n            >\r\n              Encerrar\r\n            </Button>\r\n          )}\r\n        </DialogActions>\r\n      </Dialog>\r\n\r\n      <Dialog\r\n        open={openUpdateRecord}\r\n        onClose={handleCloseUpdateRecord}\r\n        aria-labelledby=\"form-dialog-title\"\r\n        fullWidth\r\n      >\r\n        <DialogTitle id=\"form-dialog-title\">\r\n          Gerar Ficha de Atualização Cadastral\r\n        </DialogTitle>\r\n\r\n        <DialogContent style={{ minHeight: '40vh' }}>\r\n          <Grid container spacing={2} alignItems=\"center\">\r\n            <Grid item xs={12} />\r\n\r\n            <Grid item xs={12} />\r\n\r\n            <Grid item xs={12}>\r\n              <FormLabel className={classes.formTitles}>\r\n                Selecione o número do prontuário\r\n              </FormLabel>\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <ReactSelect\r\n                closeMenuOnSelect\r\n                options={recordNumbers}\r\n                onChange={(e) => handleNumberSelect(e)}\r\n                menuPosition=\"fixed\"\r\n                isClearable\r\n              />\r\n            </Grid>\r\n          </Grid>\r\n        </DialogContent>\r\n\r\n        <DialogActions>\r\n          <Button onClick={handleCloseUpdateRecord}>Cancelar</Button>\r\n\r\n          {recordNumber > 0 && (\r\n            <Button\r\n              variant=\"contained\"\r\n              color=\"primary\"\r\n              onClick={() => handleClickLinkOpen('update', recordNumber)}\r\n            >\r\n              Gerar Ficha\r\n            </Button>\r\n          )}\r\n        </DialogActions>\r\n      </Dialog>\r\n\r\n      <Form ref={formFilterRef} initialData={{}} onSubmit={handleFilters}>\r\n        <Grid container className={classes.filter}>\r\n          <Grid item xs={6}>\r\n            <Button\r\n              id=\"basic-button\"\r\n              aria-controls=\"basic-menu\"\r\n              aria-haspopup=\"true\"\r\n              variant=\"contained\"\r\n              color=\"primary\"\r\n              aria-expanded={open ? 'true' : undefined}\r\n              startIcon={<LinkIcon />}\r\n              onClick={handleMenu}\r\n            >\r\n              Gerar link\r\n            </Button>\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"type\"\r\n              isMulti={false}\r\n              placeholder=\"Tipo\"\r\n              isClearable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('type', e)}\r\n              options={[\r\n                { value: 'init_form', label: 'Ficha inicial' },\r\n                { value: 'parent_init_form', label: 'Atendimento a Pais' },\r\n                { value: 'adoption', label: 'Ficha de Contato Inicial MP' },\r\n                { value: 'update', label: 'Atualização cadastral' },\r\n                // { value: 'discount', label: 'Redução de valor' },\r\n                // { value: 'forwarding', label: 'Encaminhamento Terapeuta' },\r\n                // { value: 'closure', label: 'Encerramento Atendimento' },\r\n              ]}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"status\"\r\n              isMulti={false}\r\n              placeholder=\"Status\"\r\n              isClearable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('status', e)}\r\n              options={[\r\n                { value: 'pending', label: 'Pendente' },\r\n                { value: 'approved', label: 'Aprovado' },\r\n                { value: 'review', label: 'Aguardando revisão' },\r\n                { value: 'archived', label: 'Arquivado' },\r\n              ]}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n              <DesktopDatePicker\r\n                label=\"Data\"\r\n                inputFormat=\"dd/MM/yyyy\"\r\n                value={date}\r\n                className={classes.item}\r\n                onChange={(d) => {\r\n                  setDate(d);\r\n                  handleFilters('date', d);\r\n                }}\r\n                renderInput={(params) => <TextField {...params} />}\r\n              />\r\n            </LocalizationProvider>\r\n          </Grid>\r\n        </Grid>\r\n      </Form>\r\n\r\n      <TableContainer\r\n        component={Paper}\r\n        style={{ display: !loading ? '' : 'none', marginBottom: '2%' }}\r\n      >\r\n        <Table className={classes.table}>\r\n          <TableHead>\r\n            <TableRow>\r\n              <StyledTableCell>Tipo</StyledTableCell>\r\n              <StyledTableCell>Status</StyledTableCell>\r\n              <StyledTableCell>Prontuário</StyledTableCell>\r\n              <StyledTableCell>Paciente</StyledTableCell>\r\n              <StyledTableCell align=\"center\">Visualizar</StyledTableCell>\r\n              <StyledTableCell>Atualizada em</StyledTableCell>\r\n              <StyledTableCell>Histórico</StyledTableCell>\r\n              <StyledTableCell>Link</StyledTableCell>\r\n              <StyledTableCell>Ação</StyledTableCell>\r\n            </TableRow>\r\n          </TableHead>\r\n          <TableBody>\r\n            {!requests.length && (\r\n              <TableRow>\r\n                <TableCell component=\"th\" scope=\"row\" colSpan={7}>\r\n                  <Typography>Nenhuma aprovação encontrada.</Typography>\r\n                </TableCell>\r\n              </TableRow>\r\n            )}\r\n\r\n            {(rowsPerPage > 0\r\n              ? requests.slice(\r\n                  page * rowsPerPage,\r\n                  page * rowsPerPage + rowsPerPage,\r\n                )\r\n              : requests\r\n            ).map((request) => (\r\n              <TableRow key={request._id}>\r\n                <TableCell component=\"th\" scope=\"row\">\r\n                  {RequestTypes[request.type]}\r\n                </TableCell>\r\n\r\n                <TableCell>{getChip(request.status)}</TableCell>\r\n\r\n                <TableCell>{request?.record?.number || '--'}</TableCell>\r\n\r\n                <TableCell>\r\n                  {request?.record?.patient?.name || '--'}\r\n\r\n                  {request?.record?.patient2 &&\r\n                    ` / ${request?.record?.patient2?.name}`}\r\n                </TableCell>\r\n\r\n                <TableCell align=\"center\">\r\n                  <Tooltip title=\"Visualizar\">\r\n                    <IconButton\r\n                      onClick={() => {\r\n                        history.push(\r\n                          TypeToUrl(\r\n                            request.type,\r\n                            request.resource_id,\r\n                            // request.record,\r\n                          ),\r\n                        );\r\n                      }}\r\n                      color=\"primary\"\r\n                    >\r\n                      <Visibility />\r\n                    </IconButton>\r\n                  </Tooltip>\r\n                </TableCell>\r\n\r\n                <TableCell>\r\n                  {moment(request.updatedAt).format('DD/MM/YYYY HH:mm')}\r\n                </TableCell>\r\n\r\n                <TableCell>\r\n                  <Tooltip title=\"Histórico\">\r\n                    <IconButton\r\n                      color=\"primary\"\r\n                      onClick={() => handleOpenHistory(request.resource_id)}\r\n                    >\r\n                      <History />\r\n                    </IconButton>\r\n                  </Tooltip>\r\n                </TableCell>\r\n\r\n                <TableCell>\r\n                  {[\r\n                    'init_form',\r\n                    'parent_init_form',\r\n                    'adoption',\r\n                    'update',\r\n                  ].includes(request.type) ? (\r\n                    <Tooltip title=\"Abrir link\">\r\n                      <IconButton\r\n                        href={`${process.env.REACT_APP_CONTACT_URL}${TypeToUrl(\r\n                          request.type,\r\n                          request.resource_id,\r\n                        )}?token=${request.token}`}\r\n                        target=\"blank\"\r\n                        color=\"primary\"\r\n                      >\r\n                        <LinkIcon />\r\n                      </IconButton>\r\n                    </Tooltip>\r\n                  ) : (\r\n                    '--'\r\n                  )}\r\n                </TableCell>\r\n\r\n                <TableCell>\r\n                  {request.status === 'pending' ? (\r\n                    <Grid container spacing={1}>\r\n                      <Grid item>\r\n                        <Tooltip title=\"Aprovar\">\r\n                          <IconButton\r\n                            aria-label=\"aprovar\"\r\n                            color=\"primary\"\r\n                            onClick={() => {\r\n                              request.type === 'update'\r\n                                ? handleDirectApprove(request._id)\r\n                                : handleOpenApprove(request._id);\r\n                            }}\r\n                          >\r\n                            <Check\r\n                              fontSize=\"large\"\r\n                              style={{ color: green[700] }}\r\n                            />\r\n                          </IconButton>\r\n                        </Tooltip>\r\n                      </Grid>\r\n\r\n                      <Grid item>\r\n                        <Tooltip title=\"Solicitar Revisão\">\r\n                          <IconButton\r\n                            aria-label=\"revisar\"\r\n                            color=\"primary\"\r\n                            onClick={() => handleReview(request._id)}\r\n                          >\r\n                            <Reviews\r\n                              fontSize=\"large\"\r\n                              style={{ color: yellow[800] }}\r\n                            />\r\n                          </IconButton>\r\n                        </Tooltip>\r\n                      </Grid>\r\n\r\n                      <Grid item>\r\n                        <Tooltip title=\"Arquivar\">\r\n                          <IconButton\r\n                            aria-label=\"arquivar\"\r\n                            color=\"primary\"\r\n                            onClick={() => handleArchive(request._id)}\r\n                          >\r\n                            <Archive\r\n                              fontSize=\"large\"\r\n                              style={{ color: red[700] }}\r\n                            />\r\n                          </IconButton>\r\n                        </Tooltip>\r\n                      </Grid>\r\n                    </Grid>\r\n                  ) : (\r\n                    <span>Nenhuma ação necessária.</span>\r\n                  )}\r\n                </TableCell>\r\n              </TableRow>\r\n            ))}\r\n          </TableBody>\r\n        </Table>\r\n\r\n        <TablePagination\r\n          rowsPerPageOptions={[5, 10, 25, 100]}\r\n          component=\"div\"\r\n          count={requests.length}\r\n          rowsPerPage={rowsPerPage}\r\n          labelRowsPerPage={<span>Solicitações por página:</span>}\r\n          labelDisplayedRows={({ count, from, to }) => {\r\n            return `${from} - ${to} de ${count}`;\r\n          }}\r\n          page={page}\r\n          onPageChange={handleChangePage}\r\n          onRowsPerPageChange={handleChangeRowsPerPage}\r\n        />\r\n      </TableContainer>\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default Requests;\r\n","import {\r\n  createStyles,\r\n  makeStyles,\r\n  TableCell,\r\n  Theme,\r\n  withStyles,\r\n} from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles({\r\n  table: {\r\n    minWidth: 650,\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  filter: {\r\n    marginTop: '1%',\r\n    marginBottom: '1%',\r\n  },\r\n  item: {\r\n    paddingRight: '4%',\r\n  },\r\n});\r\n\r\nexport const StyledTableCell = withStyles((theme: Theme) =>\r\n  createStyles({\r\n    root: {\r\n      backgroundColor: theme.palette.primary.main,\r\n      color: theme.palette.background.default,\r\n    },\r\n    body: {\r\n      fontSize: 14,\r\n    },\r\n  }),\r\n)(TableCell);\r\n","import React, { InputHTMLAttributes, useEffect, useRef } from 'react';\r\n\r\nimport { useField } from '@unform/core';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { makeStyles, Theme } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  input: {},\r\n}));\r\n\r\ninterface InputProps extends InputHTMLAttributes<HTMLInputElement> {\r\n  name: string;\r\n  label: string;\r\n  type?: string;\r\n  isMultiline?: boolean;\r\n  rows?: number;\r\n  manualError?: string;\r\n}\r\n\r\nconst Input: React.FC<InputProps> = ({\r\n  name,\r\n  label,\r\n  type = 'text',\r\n  isMultiline = false,\r\n  rows = 1,\r\n  manualError,\r\n  ...rest\r\n}) => {\r\n  const classes = useStyles();\r\n  const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n  const { fieldName, defaultValue, error, registerField } = useField(name);\r\n\r\n  useEffect(() => {\r\n    registerField({\r\n      name: fieldName,\r\n      ref: inputRef.current,\r\n      path: 'value',\r\n    });\r\n  }, [fieldName, registerField]);\r\n\r\n  return (\r\n    <div>\r\n      <TextField\r\n        multiline={isMultiline}\r\n        rows={rows}\r\n        error={manualError ? !!manualError : !!error}\r\n        helperText={manualError || error}\r\n        inputProps={{ defaultValue, ref: inputRef, ...rest }}\r\n        label={label}\r\n        type={type}\r\n        className={classes.input}\r\n        variant=\"outlined\"\r\n        margin=\"dense\"\r\n        fullWidth\r\n      />\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Input;\r\n","import React, { useState } from 'react';\r\nimport {\r\n  IconButton,\r\n  makeStyles,\r\n  Theme,\r\n  FormLabel,\r\n  Grid,\r\n} from '@material-ui/core';\r\nimport { Attachment } from '@material-ui/icons';\r\n\r\nimport Loader from '../Loader';\r\nimport Snackbar, { AlertComponentProps } from '../Snackbar';\r\n\r\nimport { getFileChip } from '../../utils/getChip';\r\nimport { useAxios } from '../../utils/hooks';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    '& > *': {\r\n      padding: theme.spacing(1),\r\n    },\r\n  },\r\n  input: {\r\n    display: 'none',\r\n  },\r\n  faceImage: {\r\n    color: theme.palette.primary.main,\r\n    fontSize: '1rem',\r\n  },\r\n  formLabel: {\r\n    fontSize: '0.8rem',\r\n  },\r\n}));\r\n\r\ninterface FormProps {\r\n  initialFiles?: File[];\r\n  handleFileId: any;\r\n}\r\n\r\nexport interface File {\r\n  name: string;\r\n  type: string;\r\n  size: number;\r\n}\r\n\r\nconst FileUploader: React.FC<FormProps> = ({ handleFileId, initialFiles }) => {\r\n  const api = useAxios();\r\n  const classes = useStyles();\r\n  const [loading, setLoading] = useState(false);\r\n  const [files, setFiles] = useState<File[]>(initialFiles || []);\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  const handleCapture = async ({ target }: any) => {\r\n    setLoading(true);\r\n    const file = target.files[0];\r\n    let fileResponse;\r\n\r\n    try {\r\n      const formData = new FormData();\r\n      formData.append('file', file);\r\n\r\n      fileResponse = await api.current?.post('/files', formData);\r\n\r\n      if (fileResponse) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Upload realizado com sucesso.',\r\n        });\r\n      }\r\n    } catch (error) {\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'error',\r\n        message: 'Erro ao salvar arquivo.',\r\n      });\r\n    } finally {\r\n      setFiles([...files, file]);\r\n      handleFileId(fileResponse?.data._id);\r\n      setLoading(false);\r\n    }\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      <input\r\n        className={classes.input}\r\n        id=\"faceImage\"\r\n        type=\"file\"\r\n        onChange={handleCapture}\r\n      />\r\n      <FormLabel htmlFor=\"faceImage\">\r\n        <IconButton\r\n          className={classes.faceImage}\r\n          color=\"primary\"\r\n          aria-label=\"upload picture\"\r\n          component=\"span\"\r\n        >\r\n          <Attachment fontSize=\"large\" color=\"primary\" />\r\n          Anexar Arquivos\r\n        </IconButton>\r\n      </FormLabel>\r\n\r\n      <Grid container spacing={2}>\r\n        {files.map((file) => (\r\n          <Grid item xs={12}>\r\n            {getFileChip(file.type, file.name)}\r\n          </Grid>\r\n        ))}\r\n      </Grid>\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default FileUploader;\r\n","import { ValidationError } from 'yup';\r\n\r\ninterface Errors {\r\n  [key: string]: string;\r\n}\r\n\r\nexport default function getValidationErrors(err: ValidationError): Errors {\r\n  const validationErrors: Errors = {};\r\n\r\n  err.inner.forEach((error) => {\r\n    validationErrors[error.path || ''] = error.message;\r\n  });\r\n\r\n  return validationErrors;\r\n}\r\n","import React, { useCallback, useEffect, useState, useRef } from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport moment from 'moment';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles, Scope } from '@unform/core';\r\n\r\nimport {\r\n  Paper,\r\n  Table,\r\n  TableBody,\r\n  TableCell,\r\n  TableContainer,\r\n  TableHead,\r\n  TableRow,\r\n  Grid,\r\n  FormLabel,\r\n  TablePagination,\r\n  TextField,\r\n} from '@mui/material';\r\n\r\nimport {\r\n  Typography,\r\n  IconButton,\r\n  Button,\r\n  Dialog,\r\n  DialogTitle,\r\n  DialogContent,\r\n  DialogActions,\r\n  Tooltip,\r\n  colors,\r\n} from '@material-ui/core';\r\n\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport { Visibility, AddCircle } from '@material-ui/icons';\r\n\r\nimport { useStyles, StyledTableCell } from './styles';\r\n\r\nimport Loader from '../../../components/Loader';\r\nimport Input from '../../../components/Input';\r\nimport Select from '../../../components/Select';\r\nimport FileUploader from '../../../components/FileUploader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\n\r\nimport { Record } from '../../../models/record';\r\nimport { User } from '../../../models/user';\r\nimport { Patient } from '../../../models/patient';\r\n\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport { getChip } from '../../../utils/getChip';\r\nimport { CreateRecordData, SelectProps } from './dto';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\n\r\nfunction getSufix(label: string) {\r\n  return label !== 'online' ? ' D' : '';\r\n}\r\n\r\nconst Records: React.FC = () => {\r\n  const api = useAxios();\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n\r\n  const [loading, setLoading] = useState(true);\r\n\r\n  const [page, setPage] = useState(0);\r\n  const [rowsPerPage, setRowsPerPage] = useState(4);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n  const formRef = useRef<FormHandles>(null);\r\n  const [users, setUsers] = useState<SelectProps[]>([]);\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const [patients, setPatients] = useState<SelectProps[]>([]);\r\n  const [fileIds, setFileIds] = useState<string[]>([]);\r\n  const [records, setRecords] = useState<Record[]>([]);\r\n  const formFilterRef = useRef<FormHandles>(null);\r\n  const [date, setDate] = useState<Date | null>(null);\r\n  const [filterPatients, setFilterPatients] = useState<SelectProps[]>([]);\r\n  const [numbers, setNumbers] = useState<SelectProps[]>([]);\r\n  const [filters, setFilters] = useState('');\r\n\r\n  const [filterTypes, setFilterTypes] = useState({\r\n    type: '',\r\n    status: '',\r\n    patient: '',\r\n    number: '',\r\n    date: '',\r\n  });\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleFile = useCallback(\r\n    (fileId: string) => {\r\n      setFileIds([...fileIds, fileId]);\r\n    },\r\n    [fileIds],\r\n  );\r\n\r\n  const handleClickOpen = useCallback(async () => {\r\n    setLoading(true);\r\n\r\n    try {\r\n      const patientsResponse = await api.current?.get('/patients');\r\n\r\n      if (patientsResponse?.data) {\r\n        setPatients(\r\n          patientsResponse.data.map((patient: Patient) => ({\r\n            value: patient._id,\r\n            label: patient.name,\r\n          })),\r\n        );\r\n      }\r\n\r\n      const usersResponse = await api.current?.get('/users');\r\n\r\n      if (usersResponse?.data) {\r\n        setUsers(\r\n          usersResponse.data.map((user: User) => ({\r\n            value: user.id,\r\n            label: `${user.firstName} ${user.lastName}`,\r\n          })),\r\n        );\r\n      }\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Dados de formuário carregados com sucesso.',\r\n      });\r\n    } catch (error) {\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'error',\r\n        message: 'Erro ao carregar dados.',\r\n      });\r\n    } finally {\r\n      setOpen(true);\r\n      setLoading(false);\r\n    }\r\n  }, [api]);\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n    setFileIds([]);\r\n  };\r\n\r\n  const handleChangePage = (event: any, newPage: any) => {\r\n    setPage(newPage);\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event: any) => {\r\n    setRowsPerPage(+event.target.value);\r\n    setPage(0);\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: CreateRecordData) => {\r\n      try {\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        const schema = Yup.object().shape({\r\n          number: Yup.number().required('Insira um número'),\r\n          patient: Yup.string().required('Selecione um paciente'),\r\n          professional_id: Yup.string().required(\r\n            'Selecione um profissional responsável',\r\n          ),\r\n          supervisor_id: Yup.string().required('Selecione um supervisor'),\r\n          type: Yup.string().required('Selecione o tipo de prontuário'),\r\n          responsibles: Yup.array().of(\r\n            Yup.object().shape({\r\n              name: Yup.string().required('Digite o nome do responsável'),\r\n              relation: Yup.string().required(\r\n                'Digite a relação do responsável',\r\n              ),\r\n            }),\r\n          ),\r\n          teams: Yup.array().of(\r\n            Yup.object().shape({\r\n              action: Yup.string().required('Selecione a ação necessária'),\r\n              professional: Yup.string().required('Selecione um profissional'),\r\n            }),\r\n          ),\r\n        });\r\n\r\n        await schema.validate(data, { abortEarly: false });\r\n\r\n        data.number = Number(data.number);\r\n        data.supervisor =\r\n          users.find((u) => u.value === data.supervisor_id)?.label || '';\r\n        data.professional =\r\n          users.find((u) => u.value === data.professional_id)?.label || '';\r\n        data.files = fileIds;\r\n\r\n        const newRecord = await api.current?.post(`/records`, data);\r\n\r\n        if (newRecord?.data) {\r\n          delete newRecord.data.patient;\r\n          newRecord.data.patient = {\r\n            _id: data.patient,\r\n            name: patients.find((p) => p.value === data.patient)?.label,\r\n          };\r\n        }\r\n\r\n        setRecords([...records, newRecord?.data]);\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Prontuário criado com sucesso.',\r\n        });\r\n        handleClose();\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao criar prontuário.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [users, records, patients, fileIds, api],\r\n  );\r\n\r\n  useEffect(() => {\r\n    async function getRecords() {\r\n      try {\r\n        const recordsResponse = await api.current?.get(`/records?${filters}`);\r\n\r\n        setRecords(recordsResponse?.data);\r\n\r\n        setFilterPatients(\r\n          recordsResponse?.data.map((record: Record) => {\r\n            if (!record.patient) {\r\n              return {\r\n                value: null,\r\n                label: 'Paciente não atribuido.',\r\n              };\r\n            }\r\n\r\n            return {\r\n              value: record.patient._id,\r\n              label: record.patient.name,\r\n            };\r\n          }),\r\n        );\r\n\r\n        setNumbers(\r\n          recordsResponse?.data.map((record: Record) => {\r\n            return {\r\n              value: String(record.number),\r\n              label: record.number,\r\n            };\r\n          }),\r\n        );\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar Prontuários Ceapia.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecords();\r\n  }, [api, filters]);\r\n\r\n  const handleFilters = useCallback(\r\n    (type: string, data: any) => {\r\n      setLoading(true);\r\n\r\n      switch (type) {\r\n        case 'type':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            type: data && data.value ? `&type=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'status':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            status: data && data.value ? `&status=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'patient':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            patient: data && data.value ? `&patient=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'number':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            number: data && data.value ? `&number=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'date':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            date: data ? `&date=${moment(data).format('YYYY-MM-DD')}` : '',\r\n          });\r\n          break;\r\n        default:\r\n          setLoading(false);\r\n          break;\r\n      }\r\n    },\r\n    [filterTypes],\r\n  );\r\n\r\n  useEffect(() => {\r\n    setFilters(\r\n      filterTypes.type +\r\n        filterTypes.status +\r\n        filterTypes.patient +\r\n        filterTypes.number +\r\n        filterTypes.date,\r\n    );\r\n\r\n    setPage(0);\r\n  }, [filterTypes]);\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      <Form ref={formFilterRef} initialData={{}} onSubmit={handleFilters}>\r\n        <Grid container className={classes.filter}>\r\n          <Grid item xs={1}>\r\n            <Tooltip title=\"Adicionar Prontuário\">\r\n              <IconButton onClick={handleClickOpen}>\r\n                <AddCircle style={{ color: colors.green[700] }} />\r\n              </IconButton>\r\n            </Tooltip>\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"type\"\r\n              isMulti={false}\r\n              placeholder=\"Tipo\"\r\n              isClearable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('type', e)}\r\n              options={[\r\n                { value: 'online', label: 'Online' },\r\n                { value: 'scanned', label: 'Digitalizado' },\r\n              ]}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"status\"\r\n              isMulti={false}\r\n              placeholder=\"Status\"\r\n              isClearable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('status', e)}\r\n              options={[\r\n                { value: 'active', label: 'Ativo' },\r\n                { value: 'closed', label: 'Encerrado' },\r\n              ]}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"patient\"\r\n              isMulti={false}\r\n              placeholder=\"Paciente\"\r\n              isClearable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('patient', e)}\r\n              options={filterPatients.filter((patient) => patient.value)}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={2}>\r\n            <Select\r\n              name=\"number\"\r\n              isMulti={false}\r\n              placeholder=\"Número\"\r\n              isClearable\r\n              isSearchable\r\n              className={classes.item}\r\n              onChange={(e) => handleFilters('number', e)}\r\n              options={numbers}\r\n            />\r\n          </Grid>\r\n\r\n          <Grid item xs={1} />\r\n\r\n          <Grid item xs={2}>\r\n            <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n              <DesktopDatePicker\r\n                label=\"Data\"\r\n                inputFormat=\"dd/MM/yyyy\"\r\n                value={date}\r\n                className={classes.item}\r\n                onChange={(d) => {\r\n                  setDate(d);\r\n                  handleFilters('date', d);\r\n                }}\r\n                renderInput={(params) => <TextField {...params} />}\r\n              />\r\n            </LocalizationProvider>\r\n          </Grid>\r\n        </Grid>\r\n      </Form>\r\n\r\n      <Dialog\r\n        open={open}\r\n        onClose={handleClose}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <Form\r\n          ref={formRef}\r\n          initialData={{\r\n            number: Math.floor(Math.random() * 100000),\r\n          }}\r\n          onSubmit={handleSubmit}\r\n        >\r\n          <DialogTitle id=\"form-dialog-title\">Adicionar Prontuário</DialogTitle>\r\n          <DialogContent style={{ minHeight: '70vh' }}>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  autoFocus\r\n                  id=\"number\"\r\n                  type=\"number\"\r\n                  label=\"Número\"\r\n                  name=\"number\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8} />\r\n\r\n              <Grid item xs={4}>\r\n                <Select\r\n                  name=\"type\"\r\n                  isMulti={false}\r\n                  placeholder=\"Tipo\"\r\n                  options={[\r\n                    { value: 'online', label: 'Online' },\r\n                    { value: 'scanned', label: 'Digitalizado' },\r\n                  ]}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Select\r\n                  name=\"patient\"\r\n                  label=\"Paciente\"\r\n                  isMulti={false}\r\n                  placeholder=\"Nome do Paciente\"\r\n                  options={patients}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Select\r\n                  name=\"professional_id\"\r\n                  isMulti={false}\r\n                  placeholder=\"Profissional\"\r\n                  options={users}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Select\r\n                  name=\"supervisor_id\"\r\n                  isMulti={false}\r\n                  placeholder=\"Supervisor\"\r\n                  options={users}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Responsáveis e Familiares\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Scope path=\"responsibles[0]\">\r\n                <Grid item xs={4}>\r\n                  <Input id=\"relation\" label=\"Relação\" name=\"relation\" />\r\n                </Grid>\r\n\r\n                <Grid item xs={6}>\r\n                  <Input id=\"name\" label=\"Nome\" name=\"name\" />\r\n                </Grid>\r\n              </Scope>\r\n\r\n              <Grid item xs={2}>\r\n                <Button variant=\"text\">+</Button>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Equipe de Atendimento\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Scope path=\"teams[0]\">\r\n                <Grid item xs={4}>\r\n                  <Select\r\n                    name=\"action\"\r\n                    isMulti={false}\r\n                    placeholder=\"Ação\"\r\n                    options={users}\r\n                  />\r\n                </Grid>\r\n\r\n                <Grid item xs={6}>\r\n                  <Select\r\n                    name=\"professional\"\r\n                    isMulti={false}\r\n                    placeholder=\"Professional\"\r\n                    options={users}\r\n                  />\r\n                </Grid>\r\n              </Scope>\r\n\r\n              <Grid item xs={2}>\r\n                <Button variant=\"text\">+</Button>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FileUploader handleFileId={handleFile} />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n          <DialogActions>\r\n            <Button onClick={handleClose}>Cancelar</Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog>\r\n\r\n      <TableContainer\r\n        component={Paper}\r\n        style={{ display: !loading ? '' : 'none', marginBottom: '2%' }}\r\n      >\r\n        <Table className={classes.table}>\r\n          <TableHead>\r\n            <TableRow>\r\n              <StyledTableCell>Terapeuta</StyledTableCell>\r\n              {/* <StyledTableCell>Supervisor</StyledTableCell> */}\r\n              <StyledTableCell>Paciente</StyledTableCell>\r\n              <StyledTableCell>Número</StyledTableCell>\r\n              <StyledTableCell>Última Atualização</StyledTableCell>\r\n              <StyledTableCell>Status</StyledTableCell>\r\n              <StyledTableCell>Tipo</StyledTableCell>\r\n              <StyledTableCell align=\"center\">Visualizar</StyledTableCell>\r\n            </TableRow>\r\n          </TableHead>\r\n          <TableBody>\r\n            {!records.length && (\r\n              <TableRow>\r\n                <TableCell component=\"th\" scope=\"row\" colSpan={7}>\r\n                  <Typography>Nenhum prontuário encontrado.</Typography>\r\n                </TableCell>\r\n              </TableRow>\r\n            )}\r\n\r\n            {(rowsPerPage > 0\r\n              ? records.slice(\r\n                  page * rowsPerPage,\r\n                  page * rowsPerPage + rowsPerPage,\r\n                )\r\n              : records\r\n            ).map((record) => (\r\n              <TableRow key={record._id}>\r\n                <TableCell component=\"th\" scope=\"row\">\r\n                  <Tooltip title={record?.professional.join(', ')}>\r\n                    <span>\r\n                      {`${record?.professional[0] || '--'}${\r\n                        record?.professional.length > 1 ? ', ...' : ''\r\n                      }`}\r\n                    </span>\r\n                  </Tooltip>\r\n                </TableCell>\r\n                {/* <TableCell component=\"th\" scope=\"row\">\r\n                  <Tooltip title={record?.supervisor?.join(', ') || ''}>\r\n                    <span>\r\n                      {`${record?.supervisor[0] || '--'}${\r\n                        record?.supervisor.length > 1 ? ', ...' : ''\r\n                      }`}\r\n                    </span>\r\n                  </Tooltip>\r\n                </TableCell> */}\r\n\r\n                <TableCell>\r\n                  {record?.patient?.name || '--'}\r\n\r\n                  {record?.patient2 && ` / ${record?.patient2?.name}`}\r\n                </TableCell>\r\n\r\n                <TableCell>\r\n                  {`${record.number}${getSufix(record.type)}`}\r\n                </TableCell>\r\n                <TableCell>\r\n                  {moment(record.updatedAt).format('DD/MM/YYYY HH:mm')}\r\n                </TableCell>\r\n                <TableCell>{getChip(record.status)}</TableCell>\r\n                <TableCell>{getChip(record.type)}</TableCell>\r\n                <TableCell align=\"center\">\r\n                  <IconButton\r\n                    onClick={() => {\r\n                      history.push(`/prontuarios/${record._id}`);\r\n                    }}\r\n                    color=\"primary\"\r\n                  >\r\n                    <Visibility />\r\n                  </IconButton>\r\n                </TableCell>\r\n              </TableRow>\r\n            ))}\r\n          </TableBody>\r\n        </Table>\r\n\r\n        <TablePagination\r\n          rowsPerPageOptions={[5, 10, 25, 100]}\r\n          component=\"div\"\r\n          count={records.length}\r\n          rowsPerPage={rowsPerPage}\r\n          labelRowsPerPage={<span>Prontuários por página:</span>}\r\n          labelDisplayedRows={({ count, from, to }) => {\r\n            return `${from} - ${to} de ${count}`;\r\n          }}\r\n          page={page}\r\n          onPageChange={handleChangePage}\r\n          onRowsPerPageChange={handleChangeRowsPerPage}\r\n        />\r\n      </TableContainer>\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default Records;\r\n","import React from 'react';\r\nimport { Card, CardContent, Theme, Typography } from '@mui/material';\r\n\r\nimport { colors, makeStyles } from '@material-ui/core';\r\nimport { WarningRounded as Warning } from '@material-ui/icons';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  card: {\r\n    marginTop: theme.spacing(1),\r\n  },\r\n  cardContent: {\r\n    background: colors.red[600],\r\n  },\r\n  title: {\r\n    display: 'flex',\r\n    alignItems: 'center',\r\n    color: '#fff',\r\n  },\r\n  icon: {\r\n    marginRight: theme.spacing(2),\r\n  },\r\n  subtitle: {\r\n    color: '#fff',\r\n  },\r\n}));\r\n\r\nconst ExpirationWarning: React.FC = () => {\r\n  const classes = useStyles();\r\n\r\n  return (\r\n    <Card className={classes.card}>\r\n      <CardContent className={classes.cardContent}>\r\n        <Typography\r\n          variant=\"h5\"\r\n          fontWeight=\"boler\"\r\n          component=\"div\"\r\n          align=\"center\"\r\n          className={classes.title}\r\n        >\r\n          <Warning className={classes.icon} fontSize=\"large\" />\r\n          Este prontuário não é atualizado há 2 meses!\r\n        </Typography>\r\n\r\n        <Typography className={classes.subtitle}>\r\n          <br />\r\n          Adicione uma Evolução ou, se for o caso, encerre o prontuário.\r\n          <br />\r\n          Se não houver nenhuma atualização ou o prontuário não for encerrado,\r\n          seu acesso poderá ser bloqueado.\r\n        </Typography>\r\n      </CardContent>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default ExpirationWarning;\r\n","import React from 'react';\r\nimport moment from 'moment';\r\n\r\nimport {\r\n  TimelineItem,\r\n  TimelineOppositeContent,\r\n  TimelineSeparator,\r\n  TimelineDot,\r\n  TimelineContent,\r\n} from '@material-ui/lab';\r\nimport { makeStyles, Paper, Theme, Typography } from '@material-ui/core';\r\n\r\nimport { HourglassEmpty } from '@material-ui/icons';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  paper: {\r\n    padding: '6px 16px',\r\n  },\r\n  content: {\r\n    padding: theme.spacing(2, 1),\r\n  },\r\n  opposite: {\r\n    maxWidth: '30%',\r\n  },\r\n  secondaryTail: {\r\n    backgroundColor: theme.palette.primary.main,\r\n  },\r\n}));\r\n\r\nconst EmptyProgress: React.FC = () => {\r\n  const classes = useStyles();\r\n\r\n  return (\r\n    <TimelineItem key=\"empty\">\r\n      <TimelineOppositeContent className={classes.opposite}>\r\n        <Typography variant=\"body1\" color=\"textSecondary\">\r\n          {moment().format('DD/MM/YYYY HH:mm')}\r\n        </Typography>\r\n      </TimelineOppositeContent>\r\n      <TimelineSeparator>\r\n        <TimelineDot color=\"inherit\">\r\n          <HourglassEmpty />\r\n        </TimelineDot>\r\n      </TimelineSeparator>\r\n      <TimelineContent className={classes.content}>\r\n        <Paper elevation={4} className={classes.paper}>\r\n          <Typography variant=\"h6\" component=\"h1\">\r\n            Sem evoluções\r\n          </Typography>\r\n          <Typography>Nenhuma evolução registrada no prontuário.</Typography>\r\n        </Paper>\r\n      </TimelineContent>\r\n    </TimelineItem>\r\n  );\r\n};\r\n\r\nexport default EmptyProgress;\r\n","import React, {\r\n  createRef,\r\n  useCallback,\r\n  useEffect,\r\n  useRef,\r\n  useState,\r\n} from 'react';\r\n// @ts-ignore\r\nimport ReactFileViewer from 'react-file-viewer';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport moment from 'moment';\r\nimport * as Yup from 'yup';\r\nimport ReactSelect from 'react-select';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  Link,\r\n  makeStyles,\r\n  Paper,\r\n  Theme,\r\n  Typography,\r\n  Dialog,\r\n  DialogTitle,\r\n  DialogContent,\r\n  DialogActions,\r\n  Grid,\r\n  FormLabel,\r\n  colors,\r\n  Tooltip,\r\n} from '@material-ui/core';\r\n\r\nimport { ListItemIcon, Menu, MenuItem, TextField } from '@mui/material';\r\n\r\nimport {\r\n  Timeline,\r\n  TimelineItem,\r\n  TimelineConnector,\r\n  TimelineOppositeContent,\r\n  TimelineSeparator,\r\n  TimelineDot,\r\n  TimelineContent,\r\n} from '@material-ui/lab';\r\n\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  AddCircle,\r\n  ArrowBack,\r\n  Check,\r\n  Delete,\r\n  Edit,\r\n  Print,\r\n} from '@material-ui/icons';\r\nimport { useKeycloak } from '@react-keycloak/web';\r\nimport { CreateNoteData, CreateProgressData, UpdateProgressData } from './dto';\r\nimport Input from '../../../components/Input';\r\nimport Loader from '../../../components/Loader';\r\nimport ExpirationWarning from '../../../components/ExpirationWarning';\r\nimport EmptyProgress from '../../../components/EmptyProgress';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\n\r\nimport { Record } from '../../../models/record';\r\nimport { Progress, ProgressFile } from '../../../models/progress';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport { getFileChip, getChip } from '../../../utils/getChip';\r\nimport { progressTypeIcons } from '../../../utils/getProgressIcon';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport Select from '../../../components/Select';\r\nimport { SelectProps } from '../List/dto';\r\nimport FileUploader, { File } from '../../../components/FileUploader';\r\nimport { User } from '../../../models/user';\r\nimport { Note } from '../../../models/note';\r\nimport { RealmRoles } from '../../../routes';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  timelineContainer: {\r\n    background: theme.palette.background.paper,\r\n    padding: theme.spacing(1),\r\n    marginTop: theme.spacing(2),\r\n    marginBottom: theme.spacing(3),\r\n    borderBottomLeftRadius: '10px',\r\n    borderBottomRightRadius: '10px',\r\n  },\r\n  timeline: {\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  title: {\r\n    textTransform: 'uppercase',\r\n    color: theme.palette.secondary.light,\r\n    fontSize: '0.9rem',\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  paper: {\r\n    padding: theme.spacing(2),\r\n    // height: '200px',\r\n  },\r\n  button: {\r\n    marginRight: theme.spacing(1),\r\n    '&:last-child': {\r\n      marginRight: 0,\r\n    },\r\n  },\r\n  editButton: {\r\n    width: '10px',\r\n    padding: theme.spacing(0.5, 0),\r\n    marginLeft: theme.spacing(1),\r\n  },\r\n  noteButton: {\r\n    margin: 2,\r\n    width: 'fit-content',\r\n  },\r\n  notes: {\r\n    padding: theme.spacing(1),\r\n    background: '#FFFACD',\r\n    fontSize: '0.8rem',\r\n  },\r\n  content: {\r\n    padding: theme.spacing(2, 1),\r\n    minWidth: '80%',\r\n  },\r\n  opposite: {\r\n    maxWidth: '20%',\r\n  },\r\n  secondaryTail: {\r\n    backgroundColor: theme.palette.primary.main,\r\n  },\r\n  filter: {\r\n    background: theme.palette.background.paper,\r\n    padding: theme.spacing(4, 2),\r\n  },\r\n  filterHeader: {\r\n    background: theme.palette.background.default,\r\n    padding: theme.spacing(1),\r\n  },\r\n  item: {\r\n    paddingRight: '4%',\r\n  },\r\n  titleGrid: {\r\n    background: theme.palette.background.paper,\r\n    padding: theme.spacing(2),\r\n    marginTop: theme.spacing(2),\r\n    borderTopRightRadius: '10px',\r\n    borderTopLeftRadius: '10px',\r\n  },\r\n  chiplink: {\r\n    textDecoration: 'none',\r\n  },\r\n}));\r\n\r\ninterface IRecordProps {\r\n  notes: boolean;\r\n}\r\n\r\ninterface KeyAndValueString {\r\n  [key: string]: string;\r\n}\r\n\r\nconst FormTypeToUrl: KeyAndValueString = {\r\n  review: 'avaliacao',\r\n  declaration: 'declaracao',\r\n  socialService: 'encaminhamento-servico-social',\r\n  parents: 'encaminhamento-atendimento-pais',\r\n  forwarding: 'encaminhamento-terapeuta',\r\n  foodForward: 'encaminhamento-transtornos-alimentares',\r\n  groupForward: 'encaminhamento-setor-grupos',\r\n  clinicForward: 'encaminhamento-corpo-clinico',\r\n  consultantRequest: 'consultoria-transtornos-alimentares',\r\n  psychopedagogy: 'encaminhamento-psicopedagogia',\r\n  discount: 'reducao-valor',\r\n  diagnosis: 'psicodiagnostico',\r\n  psychiatric: 'avaliacao-psiquiatrica',\r\n  quarterplan: 'revisao-semestral-plano',\r\n  init: 'inicial',\r\n  update: 'atualizacao-cadastral',\r\n  adoption: 'inicial-adocao',\r\n  parentInit: 'inicial-responsaveis',\r\n  closure: 'encerramento-atendimento',\r\n  screening: 'parecer-triagem',\r\n  babyScreening: 'parecer-triagem-intervencoes-precoces',\r\n  monthlyEvolution: 'evolucao-mensal-ambientoterapia',\r\n  hosting: 'acolhimento',\r\n  monthlyNutritionEvolution: 'evolucao-mensal-nutricao',\r\n  psychiatryEvolution: 'evolucao-psiquiatrica',\r\n};\r\n\r\nconst TypeToTitle: KeyAndValueString = {\r\n  review: 'Avaliação',\r\n  declaration: 'Declaração',\r\n  socialService: 'Encaminhamento para o Serviço Social',\r\n  parents: 'Encaminhamento Atendimento a Pais',\r\n  forwarding: 'Encaminhamento Terapeuta',\r\n  foodForward: 'Encaminhamento Transtornos Alimentares',\r\n  groupForward: 'Encaminhamento Setor de Grupos',\r\n  clinicForward: 'Encaminhamento Corpo Clínico',\r\n  consultantRequest: 'Solicitação Consultoria Transtornos Alimentares',\r\n  psychopedagogy: 'Encaminhamento para Psicopedagogia',\r\n  discount: 'Pedido para Redução do Valor',\r\n  diagnosis: 'Psicodiagnóstico',\r\n  psychiatric: 'Avaliação Psiquiátrica',\r\n  quarterplan: 'Revisão Semestral do Plano de Tratamento',\r\n  init: 'Ficha Inicial',\r\n  adoption: 'Ficha de Contato Inicial do MP',\r\n  update: 'Ficha de Atualização Cadastral',\r\n  parentInit: 'Ficha Inicial a Pais e/ou Responsáveis',\r\n  closure: 'Nota de Encerramento do Atendimento',\r\n  screening: 'Parecer da Equipe de Triagem',\r\n  babyScreening: 'Parecer da Equipe de Triagem de Intervenções Precoces',\r\n  monthlyEvolution: 'Evolução Mensal do Paciente em Ambientoterapia',\r\n  hosting: 'Acolhimento',\r\n  monthlyNutritionEvolution: 'Evolução Mensal da Nutrição',\r\n  psychiatryEvolution: 'Evolução Psiquiátrica do Paciente',\r\n};\r\n\r\nconst ShowRecord: React.FC<IRecordProps> = ({ notes = true }) => {\r\n  const api = useAxios();\r\n  const history = useHistory();\r\n  const { keycloak } = useKeycloak();\r\n  const classes = useStyles();\r\n  const pathLink = createRef();\r\n  const [fileIds, setFileIds] = useState<string[]>([]);\r\n  const [initialFiles, setInitialFiles] = useState<File[]>([]);\r\n  const [professionalIds, setProfessionalIds] = useState<string[]>([]);\r\n  const [coordIds, setCoordIds] = useState<string[]>([]);\r\n  const [linkOpen, setLinkOpen] = useState(false);\r\n  const [link, setLink] = useState('');\r\n  const [openProgress, setOpenProgress] = useState(false);\r\n  const [openEditProgress, setOpenEditProgress] = useState(false);\r\n  const [openNote, setOpenNote] = useState(false);\r\n  const [openEditNote, setOpenEditNote] = useState(false);\r\n  const [progressId, setProgressId] = useState<string | null>(null);\r\n  const formRef = useRef<FormHandles>(null);\r\n  const formEditRef = useRef<FormHandles>(null);\r\n  const { id } = useParams<{ id: string }>();\r\n  const [loading, setLoading] = useState(true);\r\n  const [fileData, setFileData] = useState<any>(false);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [progress, setProgress] = useState<Progress[]>([]);\r\n  const [editProgress, setEditProgress] = useState<Progress>({} as Progress);\r\n  const [editNote, setEditNote] = useState<Note>({} as Note);\r\n  const [users, setUsers] = useState<SelectProps[]>([]);\r\n  const formFilterRef = useRef<FormHandles>(null);\r\n  const [date, setDate] = useState<Date | null>(null);\r\n  const [authors, setAuthors] = useState<SelectProps[]>([]);\r\n  const [filters, setFilters] = useState('');\r\n  const [filterTypes, setFilterTypes] = useState({\r\n    type: '',\r\n    author_id: '',\r\n    date: '',\r\n  });\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  const [anchorEl, setAnchorEl] = React.useState(null);\r\n  const open = Boolean(anchorEl);\r\n  const handleMenu = (event: any) => {\r\n    setAnchorEl(event.currentTarget);\r\n  };\r\n  const handleMenuClose = () => {\r\n    setAnchorEl(null);\r\n  };\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        const progressResponse = await api.current?.get(\r\n          `/records/${id}/progress?${filters}`,\r\n        );\r\n\r\n        setProgress(progressResponse?.data);\r\n\r\n        const usersResponse = await api.current?.get(`/users`);\r\n\r\n        setUsers(\r\n          usersResponse?.data\r\n            .map((user: User) => ({\r\n              ...user,\r\n              lastName: `${user.lastName} ${\r\n                user.attributes && user.attributes.aluno ? '(aluno)' : ''\r\n              }`,\r\n            }))\r\n            .map((user: User) => ({\r\n              value: user.id,\r\n              label: `${user.firstName} ${user.lastName}`,\r\n            })),\r\n        );\r\n\r\n        setCoordIds(\r\n          usersResponse?.data\r\n            .filter(\r\n              (user: User) =>\r\n                user.attributes &&\r\n                user.attributes.coordenador &&\r\n                user.attributes.coordenador[0] === 'true',\r\n            )\r\n            .map((user: User) => user.id),\r\n        );\r\n        setProfessionalIds(\r\n          usersResponse?.data\r\n            .filter(\r\n              (user: User) => !user.attributes || !user.attributes.coordenador,\r\n            )\r\n            .map((user: User) => user.id),\r\n        );\r\n\r\n        const currentAuthors = progressResponse?.data.map(\r\n          (progressItem: Progress) => {\r\n            return {\r\n              value: progressItem.author_id,\r\n              label: progressItem.author,\r\n            };\r\n          },\r\n        );\r\n\r\n        const result = currentAuthors.filter(\r\n          (value: any, index: any, self: any) =>\r\n            self.findIndex((m: any) => m.value === value.value) === index,\r\n        );\r\n\r\n        setAuthors(result);\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, filters]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleLinkClose = () => {\r\n    setLinkOpen(false);\r\n    setLink('');\r\n  };\r\n\r\n  const handleClickPrint = useCallback(async () => {\r\n    resetAlert();\r\n    setLoading(true);\r\n    setLink('--');\r\n\r\n    try {\r\n      const linkResponse = await api.current?.get(`/records/${id}/print`);\r\n\r\n      if (linkResponse?.data && linkResponse?.data.link) {\r\n        setLink(linkResponse?.data.link);\r\n      } else {\r\n        throw new Error();\r\n      }\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Link para impressão gerado com sucesso.',\r\n      });\r\n    } catch (error) {\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'error',\r\n        message: 'Erro ao gerar link para impressão.',\r\n      });\r\n    } finally {\r\n      setLinkOpen(true);\r\n      setLoading(false);\r\n    }\r\n  }, [api, id]);\r\n\r\n  const handleClickReopen = useCallback(async () => {\r\n    resetAlert();\r\n    setLoading(true);\r\n\r\n    try {\r\n      await api.current?.patch(`/records/${id}/reopen`);\r\n\r\n      const currentRecord = record;\r\n      (currentRecord as Record).status = 'active';\r\n      setRecord(currentRecord);\r\n\r\n      const newProgress = await api.current?.get(`/records/${id}/progress`);\r\n\r\n      setProgress(newProgress?.data);\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Prontuário reaberto com sucesso.',\r\n      });\r\n    } catch (error) {\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'error',\r\n        message: 'Erro ao reabrir prontuário.',\r\n      });\r\n    } finally {\r\n      setLoading(false);\r\n    }\r\n  }, [api, id, record]);\r\n\r\n  const handleFile = useCallback(\r\n    (fileId: string) => {\r\n      setFileIds([...fileIds, fileId]);\r\n    },\r\n    [fileIds],\r\n  );\r\n\r\n  const handleOpenProgress = () => {\r\n    setOpenProgress(true);\r\n  };\r\n\r\n  const handleOpenEditProgress = (progress: Progress) => {\r\n    setEditProgress(progress);\r\n    setFileIds(progress.files.map((file) => file._id));\r\n    setInitialFiles(\r\n      progress.files\r\n        .filter((file) => file)\r\n        .map(\r\n          (file: ProgressFile) =>\r\n            ({\r\n              name: file.originalname || 'Arquivo não encontrado',\r\n              size: file.size || 0,\r\n              type: file.mimetype || 'xyz',\r\n            } as File),\r\n        ),\r\n    );\r\n    setOpenEditProgress(true);\r\n  };\r\n\r\n  const handleCloseEditProgress = () => {\r\n    setOpenEditProgress(false);\r\n  };\r\n\r\n  const handleCloseProgress = () => {\r\n    setOpenProgress(false);\r\n  };\r\n\r\n  const handleCloseFile = (fileBlob: any) => {\r\n    URL.revokeObjectURL(fileBlob);\r\n\r\n    setFileData(false);\r\n  };\r\n\r\n  const handleOpenNote = (progress: Progress) => {\r\n    setEditProgress(progress);\r\n    setOpenNote(true);\r\n  };\r\n\r\n  const handleCloseNote = () => {\r\n    setProgressId(null);\r\n    setOpenNote(false);\r\n  };\r\n\r\n  const handleOpenEditNote = (note: Note) => {\r\n    setEditNote(note);\r\n    setFileIds(note.files.map((file) => file._id));\r\n    setInitialFiles(\r\n      note.files\r\n        .filter((file) => file)\r\n        .map(\r\n          (file: ProgressFile) =>\r\n            ({\r\n              name: file.originalname,\r\n              size: file.size,\r\n              type: file.mimetype,\r\n            } as File),\r\n        ),\r\n    );\r\n    setOpenEditNote(true);\r\n  };\r\n\r\n  const handleCloseEditNote = () => {\r\n    setOpenEditNote(false);\r\n  };\r\n\r\n  const handleSubmitProgress = useCallback(\r\n    async (data: CreateProgressData) => {\r\n      try {\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        const schema = Yup.object().shape({\r\n          content: Yup.string().required('Insira uma evolução'),\r\n        });\r\n\r\n        await schema.validate(data, { abortEarly: false });\r\n        data.type = 'evolution';\r\n        data.title = 'Evolução';\r\n        data.files = fileIds;\r\n\r\n        const newProgress = await api.current?.post(\r\n          `/records/${id}/progress`,\r\n          data,\r\n        );\r\n\r\n        const getNewProgress = await api.current?.get(\r\n          `/records/${id}/progress/${newProgress?.data._id}`,\r\n        );\r\n\r\n        setProgress([getNewProgress?.data, ...progress]);\r\n        setFileIds([]);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Evolução criada com sucesso.',\r\n        });\r\n        handleCloseProgress();\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao criar evolução.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [id, progress, api, fileIds],\r\n  );\r\n\r\n  const handleSubmitEditProgress = useCallback(\r\n    async (data: UpdateProgressData) => {\r\n      try {\r\n        resetAlert();\r\n        formEditRef.current?.setErrors({});\r\n\r\n        const schema = Yup.object().shape({\r\n          content: Yup.string().required('Insira uma evolução'),\r\n        });\r\n\r\n        await schema.validate(data, { abortEarly: false });\r\n\r\n        data.files = fileIds;\r\n        // data.forms = data.forms.map(form => form.id)\r\n\r\n        await api.current?.patch(\r\n          `/records/${id}/progress/${editProgress._id}`,\r\n          data,\r\n        );\r\n\r\n        const getNewProgress = await api.current?.get(\r\n          `/records/${id}/progress/${editProgress._id}`,\r\n        );\r\n\r\n        const currentProgress = progress;\r\n        const progressIdx = currentProgress.findIndex(\r\n          (progress) => progress._id === editProgress._id,\r\n        );\r\n        currentProgress[progressIdx] = getNewProgress?.data;\r\n\r\n        setProgress(currentProgress);\r\n        setFileIds([]);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Evolução atualizada com sucesso.',\r\n        });\r\n        handleCloseEditProgress();\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formEditRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao atualizar evolução.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [id, progress, api, fileIds, editProgress],\r\n  );\r\n\r\n  const handleSubmitApproveProgress = useCallback(\r\n    async (progressId: string) => {\r\n      setLoading(true);\r\n      try {\r\n        await api.current?.get(`/records/${id}/progress/${progressId}/approve`);\r\n\r\n        const approvedProgress = await api.current?.get(\r\n          `/records/${id}/progress/${progressId}`,\r\n        );\r\n\r\n        const record = await api.current?.get(`/records/${id}`);\r\n\r\n        setRecord(record?.data);\r\n\r\n        const currentProgress = progress;\r\n        const progressIdx = currentProgress.findIndex(\r\n          (progress) => progress._id === progressId,\r\n        );\r\n        currentProgress[progressIdx] = approvedProgress?.data;\r\n\r\n        setProgress(currentProgress);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Evolução aprovada com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formEditRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao aprovar evolução.',\r\n          });\r\n        }\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [id, progress, api],\r\n  );\r\n\r\n  const handleSubmitDeleteProgress = useCallback(\r\n    async (progressId: string) => {\r\n      setLoading(true);\r\n      try {\r\n        await api.current?.delete(`/records/${id}/progress/${progressId}`);\r\n\r\n        const currentProgress = progress.filter((p) => p._id !== progressId);\r\n\r\n        setProgress(currentProgress);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Evolução deletada com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formEditRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao deletar evolução.',\r\n          });\r\n        }\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [id, progress, api],\r\n  );\r\n\r\n  const handleSubmitApproveNote = useCallback(\r\n    async (note: Note) => {\r\n      setLoading(true);\r\n      try {\r\n        await api.current?.get(\r\n          `/records/${id}/progress/${note.progress}/notes/${note._id}/approve`,\r\n        );\r\n\r\n        const updatedProgressLit = await api.current?.get(\r\n          `/records/${id}/progress`,\r\n        );\r\n\r\n        setProgress(updatedProgressLit?.data);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Nota aprovada com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formEditRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao aprovar nota.',\r\n          });\r\n        }\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [id, api],\r\n  );\r\n\r\n  const handleSubmitNote = useCallback(\r\n    async (data: CreateNoteData) => {\r\n      try {\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        const schema = Yup.object().shape({\r\n          content: Yup.string().required('Insira uma nota'),\r\n        });\r\n\r\n        await schema.validate(data, { abortEarly: false });\r\n        data.title = 'Nota do Supervisor';\r\n        data.files = fileIds;\r\n        data.destination_id = editProgress.author_id;\r\n\r\n        await api.current?.post(\r\n          `/records/${id}/progress/${editProgress._id}/notes`,\r\n          data,\r\n        );\r\n\r\n        const updatedProgressLit = await api.current?.get(\r\n          `/records/${id}/progress`,\r\n        );\r\n\r\n        setFileIds([]);\r\n        setProgress(updatedProgressLit?.data);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Nota criada com sucesso.',\r\n        });\r\n        handleCloseNote();\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao criar nota.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [id, api, editProgress, fileIds],\r\n  );\r\n\r\n  const handleSubmitEditNote = useCallback(\r\n    async (data: CreateNoteData) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        const schema = Yup.object().shape({\r\n          content: Yup.string().required('Insira uma nota'),\r\n        });\r\n\r\n        await schema.validate(data, { abortEarly: false });\r\n        data.title = 'Nota do Supervisor';\r\n        data.files = fileIds;\r\n\r\n        await api.current?.patch(\r\n          `/records/${id}/progress/${editNote.progress}/notes/${editNote._id}`,\r\n          data,\r\n        );\r\n\r\n        const updatedProgressLit = await api.current?.get(\r\n          `/records/${id}/progress`,\r\n        );\r\n\r\n        setFileIds([]);\r\n        setProgress(updatedProgressLit?.data);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Nota atualizada com sucesso.',\r\n        });\r\n        handleCloseEditNote();\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formEditRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao atualizar nota.',\r\n          });\r\n        }\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [id, api, fileIds, editNote],\r\n  );\r\n\r\n  const handleFilters = useCallback(\r\n    (type: string, data: any) => {\r\n      setLoading(true);\r\n\r\n      switch (type) {\r\n        case 'type':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            type: data && data.value ? `&type=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'author':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            author_id: data && data.value ? `&author_id=${data.value}` : '',\r\n          });\r\n          break;\r\n        case 'date':\r\n          setFilterTypes({\r\n            ...filterTypes,\r\n            date: data ? `&date=${moment(data).format('YYYY-MM-DD')}` : '',\r\n          });\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n    },\r\n    [filterTypes],\r\n  );\r\n\r\n  const handleProfessionalSelect = useCallback(\r\n    async (list: any) => {\r\n      resetAlert();\r\n      try {\r\n        let operation = '';\r\n        const recordCoords = users.filter(\r\n          (user) =>\r\n            coordIds.includes(user.value) &&\r\n            record?.professional_id.includes(user.value),\r\n        );\r\n\r\n        const totalLength = list.length + recordCoords.length;\r\n\r\n        if (record) {\r\n          if (totalLength > record?.professional_id.length) {\r\n            operation = 'adicionado';\r\n\r\n            const allProsIds = [...list, ...recordCoords].map(\r\n              (pro) => pro.value,\r\n            );\r\n\r\n            const proIdToAdd = allProsIds.filter(\r\n              (id) => !record?.professional_id.includes(id),\r\n            )[0];\r\n\r\n            await api.current?.patch(\r\n              `/records/${id}/professional/${proIdToAdd}/add`,\r\n            );\r\n\r\n            const currentRecord = record;\r\n            currentRecord?.professional_id.push(proIdToAdd);\r\n            setRecord(currentRecord);\r\n          } else {\r\n            operation = 'removido';\r\n\r\n            const allProsIds = [...list, ...recordCoords].map(\r\n              (pro) => pro.value,\r\n            );\r\n\r\n            const proIdToRemove = record?.professional_id.filter(\r\n              (id) => !allProsIds.includes(id),\r\n            )[0];\r\n\r\n            await api.current?.patch(\r\n              `/records/${id}/professional/${proIdToRemove}/remove`,\r\n            );\r\n\r\n            const currentRecord = record;\r\n            const newProsList = record?.professional_id.filter(\r\n              (id) => id !== proIdToRemove,\r\n            );\r\n            currentRecord.professional_id = newProsList;\r\n            setRecord(currentRecord);\r\n          }\r\n        }\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: `Terapeuta ${operation} com sucesso.`,\r\n        });\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao adicionar/remover terapeuta.',\r\n        });\r\n      }\r\n    },\r\n    [api, id, coordIds, record, users],\r\n  );\r\n\r\n  const handleCoordSelect = useCallback(\r\n    async (list: any) => {\r\n      resetAlert();\r\n      try {\r\n        let operation = '';\r\n        const recordPros = users.filter(\r\n          (user) =>\r\n            professionalIds.includes(user.value) &&\r\n            record?.professional_id.includes(user.value),\r\n        );\r\n\r\n        const totalLength = list.length + recordPros.length;\r\n\r\n        if (record) {\r\n          if (totalLength > record?.professional_id.length) {\r\n            operation = 'adicionado';\r\n\r\n            const allProsIds = [...list, ...recordPros].map((pro) => pro.value);\r\n\r\n            const coordIdToAdd = allProsIds.filter(\r\n              (id) => !record?.professional_id.includes(id),\r\n            )[0];\r\n\r\n            await api.current?.patch(\r\n              `/records/${id}/professional/${coordIdToAdd}/add`,\r\n            );\r\n\r\n            const currentRecord = record;\r\n            currentRecord?.professional_id.push(coordIdToAdd);\r\n            setRecord(currentRecord);\r\n          } else {\r\n            operation = 'removido';\r\n\r\n            const allProsIds = [...list, ...recordPros].map((pro) => pro.value);\r\n\r\n            const coordIdToRemove = record?.professional_id.filter(\r\n              (id) => !allProsIds.includes(id),\r\n            )[0];\r\n\r\n            await api.current?.patch(\r\n              `/records/${id}/professional/${coordIdToRemove}/remove`,\r\n            );\r\n\r\n            const currentRecord = record;\r\n            const newProsList = record?.professional_id.filter(\r\n              (id) => id !== coordIdToRemove,\r\n            );\r\n            currentRecord.professional_id = newProsList;\r\n            setRecord(currentRecord);\r\n          }\r\n        }\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: `Setor ${operation} com sucesso.`,\r\n        });\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao adicionar/remover setor.',\r\n        });\r\n      }\r\n    },\r\n    [api, id, professionalIds, record, users],\r\n  );\r\n\r\n  const handleSupervisorSelect = useCallback(\r\n    async (list: any) => {\r\n      resetAlert();\r\n      try {\r\n        await api.current?.patch(`/records/${id}`, {\r\n          supervisor_id: list.map((item: SelectProps) => item.value),\r\n          supervisor: list.map((item: SelectProps) => item.label),\r\n        });\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Prontuário atualizado com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao atualizar prontuário.',\r\n        });\r\n      }\r\n    },\r\n    [api, id],\r\n  );\r\n\r\n  const handleDownload = useCallback(\r\n    (path: string) => {\r\n      resetAlert();\r\n      const formatPath = path.split('/');\r\n      const filePath = formatPath.slice(0, -1);\r\n      const fileName = formatPath[formatPath.length - 1];\r\n      let fileType = fileName.split('.')[1];\r\n\r\n      if (fileName.includes('.doc') && !fileName.includes('.docx')) {\r\n        fileType = 'docx';\r\n      }\r\n\r\n      api.current\r\n        ?.get(`files/${filePath.join('*')}*${fileName}`, {\r\n          responseType: 'blob',\r\n        })\r\n        .then((response: any) => {\r\n          const fileData = {\r\n            blob: URL.createObjectURL(response.data),\r\n            fileType,\r\n          };\r\n\r\n          setFileData(fileData);\r\n        })\r\n        .catch(() =>\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao exibir arquivo.',\r\n          }),\r\n        );\r\n    },\r\n    [api],\r\n  );\r\n\r\n  useEffect(() => {\r\n    setFilters(filterTypes.type + filterTypes.author_id + filterTypes.date);\r\n  }, [filterTypes]);\r\n\r\n  return (\r\n    <div>\r\n      <Loader loading={loading} />\r\n\r\n      {progress.length >= 1 &&\r\n        moment().diff(progress[0].updatedAt, 'months') >= 2 &&\r\n        record?.status === 'active' && <ExpirationWarning />}\r\n      <Dialog\r\n        open={openProgress}\r\n        onClose={handleCloseProgress}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <Form ref={formRef} onSubmit={handleSubmitProgress}>\r\n          <DialogTitle id=\"form-dialog-title\">Criar Evolução</DialogTitle>\r\n\r\n          <DialogContent>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Insira os dados da evolução do paciente\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  isMultiline\r\n                  rows={5}\r\n                  id=\"content\"\r\n                  label=\"Evolução\"\r\n                  name=\"content\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FileUploader handleFileId={handleFile} />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n          <DialogActions>\r\n            <Button onClick={handleCloseProgress} color=\"default\">\r\n              Cancelar\r\n            </Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog>\r\n\r\n      <Dialog\r\n        open={openEditProgress}\r\n        onClose={handleCloseEditProgress}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <Form\r\n          ref={formEditRef}\r\n          initialData={editProgress}\r\n          onSubmit={handleSubmitEditProgress}\r\n        >\r\n          <DialogTitle id=\"form-dialog-title\">Editar Evolução</DialogTitle>\r\n\r\n          <DialogContent>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Insira os dados da evolução do paciente\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  isMultiline\r\n                  rows={5}\r\n                  id=\"content\"\r\n                  label=\"Evolução\"\r\n                  name=\"content\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FileUploader\r\n                  handleFileId={handleFile}\r\n                  initialFiles={initialFiles}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n          <DialogActions>\r\n            <Button onClick={handleCloseEditProgress} color=\"default\">\r\n              Cancelar\r\n            </Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog>\r\n\r\n      <Dialog\r\n        open={openNote}\r\n        onClose={handleCloseNote}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <Form ref={formRef} onSubmit={handleSubmitNote}>\r\n          <DialogTitle id=\"form-dialog-title\">Criar Nota</DialogTitle>\r\n\r\n          <DialogContent>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={8} />\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Insira uma nota sobre a evolução do paciente\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  isMultiline\r\n                  rows={5}\r\n                  id=\"content\"\r\n                  label=\"Nota\"\r\n                  name=\"content\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FileUploader handleFileId={handleFile} />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n          <DialogActions>\r\n            <Button onClick={handleCloseNote} color=\"default\">\r\n              Cancelar\r\n            </Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog>\r\n\r\n      <Dialog\r\n        open={openEditNote}\r\n        onClose={handleCloseEditNote}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <Form\r\n          ref={formEditRef}\r\n          initialData={editNote}\r\n          onSubmit={handleSubmitEditNote}\r\n        >\r\n          <DialogTitle id=\"form-dialog-title\">Editar Nota</DialogTitle>\r\n\r\n          <DialogContent>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={8} />\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Insira uma nota sobre a evolução do paciente\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  isMultiline\r\n                  rows={5}\r\n                  id=\"content\"\r\n                  label=\"Nota\"\r\n                  name=\"content\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FileUploader\r\n                  handleFileId={handleFile}\r\n                  initialFiles={initialFiles}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n          <DialogActions>\r\n            <Button onClick={handleCloseEditNote} color=\"default\">\r\n              Cancelar\r\n            </Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog>\r\n\r\n      <Dialog\r\n        open={linkOpen}\r\n        onClose={handleLinkClose}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <DialogTitle id=\"form-dialog-title\">Link para impressão</DialogTitle>\r\n\r\n        <DialogContent>\r\n          <Link href={link} target=\"blank\">\r\n            {link}\r\n          </Link>\r\n        </DialogContent>\r\n\r\n        <DialogActions>\r\n          <Button onClick={handleLinkClose}>Fechar</Button>\r\n        </DialogActions>\r\n      </Dialog>\r\n\r\n      <Dialog\r\n        open={fileData}\r\n        onClose={() => handleCloseFile(fileData.blob)}\r\n        fullWidth\r\n        maxWidth=\"md\"\r\n      >\r\n        <DialogContent\r\n          style={{\r\n            display: 'flex',\r\n            justifyContent: 'center',\r\n            alignItems: 'center',\r\n            height: '100vh',\r\n          }}\r\n        >\r\n          <div\r\n            style={{\r\n              width: '100%',\r\n              height: '100%',\r\n            }}\r\n          >\r\n            <ReactFileViewer\r\n              fileType={fileData.fileType}\r\n              filePath={fileData.blob}\r\n            />\r\n          </div>\r\n\r\n          {/* <iframe\r\n            title=\"file\"\r\n            src={fileData.blob}\r\n            style={{ width: '100%', height: '500px' }}\r\n          /> */}\r\n        </DialogContent>\r\n        <DialogActions>\r\n          <Button\r\n            onClick={() => handleCloseFile(fileData.blob)}\r\n            color=\"primary\"\r\n            variant=\"contained\"\r\n          >\r\n            Fechar\r\n          </Button>\r\n        </DialogActions>\r\n      </Dialog>\r\n      <Grid\r\n        container\r\n        justify=\"space-between\"\r\n        alignItems=\"center\"\r\n        className={classes.titleGrid}\r\n      >\r\n        <div>\r\n          <h2 className={classes.title}>{`Prontuário: ${record?.number}`}</h2>\r\n          {getChip(record?.status || '')}\r\n        </div>\r\n\r\n        <div>\r\n          <Button\r\n            className={classes.button}\r\n            variant=\"outlined\"\r\n            color=\"primary\"\r\n            startIcon={<ArrowBack />}\r\n            onClick={() => history.goBack()}\r\n          >\r\n            Voltar\r\n          </Button>\r\n\r\n          {record?.status === 'closed' && (\r\n            <Button\r\n              id=\"basic-button\"\r\n              aria-controls=\"basic-menu\"\r\n              aria-haspopup=\"true\"\r\n              variant=\"contained\"\r\n              className={classes.button}\r\n              startIcon={<AddCircle />}\r\n              onClick={() => handleClickReopen()}\r\n              aria-expanded={open ? 'true' : undefined}\r\n              style={{ background: colors.green[700], color: 'white' }}\r\n            >\r\n              Reabrir\r\n            </Button>\r\n          )}\r\n\r\n          <Tooltip title=\"Temporariamente Indisponível\">\r\n            <span className={classes.button}>\r\n              <Button\r\n                id=\"basic-button\"\r\n                aria-controls=\"basic-menu\"\r\n                aria-haspopup=\"true\"\r\n                variant=\"contained\"\r\n                color=\"primary\"\r\n                className={classes.button}\r\n                // disabled={\r\n                //   record?.status !== 'active' ||\r\n                //   record?.supervisor_id?.includes(keycloak?.subject as string)\r\n                // }\r\n                disabled\r\n                aria-expanded={open ? 'true' : undefined}\r\n                startIcon={<Print />}\r\n                onClick={() => handleClickPrint()}\r\n              >\r\n                Imprimir\r\n              </Button>\r\n            </span>\r\n          </Tooltip>\r\n\r\n          <Button\r\n            id=\"basic-button\"\r\n            aria-controls=\"basic-menu\"\r\n            aria-haspopup=\"true\"\r\n            variant=\"contained\"\r\n            color=\"primary\"\r\n            className={classes.button}\r\n            disabled={\r\n              record?.status !== 'active' ||\r\n              record?.supervisor_id?.includes(keycloak?.subject as string)\r\n            }\r\n            aria-expanded={open ? 'true' : undefined}\r\n            startIcon={<AddCircle />}\r\n            onClick={handleMenu}\r\n          >\r\n            Adicionar Ficha\r\n          </Button>\r\n\r\n          <Menu\r\n            id=\"basic-menu\"\r\n            anchorEl={anchorEl}\r\n            open={open}\r\n            onClose={handleMenuClose}\r\n            MenuListProps={{\r\n              'aria-labelledby': 'basic-button',\r\n            }}\r\n          >\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\n                history.push(`/prontuarios/${id}/formularios/avaliacao`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.review}</ListItemIcon>\r\n              <Typography variant=\"inherit\">Ficha de Avaliação</Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\nhistory.push(`/prontuarios/${id}/formularios/parecer-triagem`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.screening}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Parecer da Equipe de Triagem\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\nhistory.push(`/prontuarios/${id}/formularios/parecer-triagem-intervencoes-precoces`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.babyScreening}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Parecer da Equipe de Triagem de Intervenções Precoces\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\nhistory.push(`/prontuarios/${id}/formularios/acolhimento`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.hosting}</ListItemIcon>\r\n              <Typography variant=\"inherit\">Acolhimento</Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\n                history.push(`/prontuarios/${id}/formularios/declaracao`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.declaration}</ListItemIcon>\r\n              <Typography variant=\"inherit\">Declaração CEAPIA</Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\n                history.push(`/prontuarios/${id}/formularios/encaminhamento-servico-social`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.socialService}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Encaminhamento Serviço Social\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\n                history.push(`/prontuarios/${id}/formularios/encaminhamento-corpo-clinico`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.clinicForward}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Encaminhamento Corpo Clínico\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\n                history.push(`/prontuarios/${id}/formularios/consultoria-transtornos-alimentares`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.consultantRequest}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Solicitação Consultoria Transtornos Alimentares\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\n                history.push(`/prontuarios/${id}/formularios/encaminhamento-atendimento-pais`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.parents}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Encaminhamento Atendimento a Pais\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\n                history.push(`/prontuarios/${id}/formularios/encaminhamento-transtornos-alimentares`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.foodForward}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Encaminhamento Setor Transtornos Alimentares\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\n                history.push(`/prontuarios/${id}/formularios/encaminhamento-setor-grupos`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.groupForward}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Encaminhamento Setor de Grupos\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\n    history.push(`/prontuarios/${id}/formularios/encaminhamento-psicopedagogia`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.psychopedagogy}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Encaminhamento para Psicopedagogia\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\n    history.push(`/prontuarios/${id}/formularios/encaminhamento-terapeuta`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.forwarding}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Encaminhamento para Terapeuta\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\n    history.push(`/prontuarios/${id}/formularios/reducao-valor`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.discount}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Pedido Redução do Valor Consulta\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\nhistory.push(`/prontuarios/${id}/formularios/psicodiagnostico`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.diagnosis}</ListItemIcon>\r\n              <Typography variant=\"inherit\">Psicodiagnóstico</Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\nhistory.push(`/prontuarios/${id}/formularios/avaliacao-psiquiatrica`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.psychiatric}</ListItemIcon>\r\n              <Typography variant=\"inherit\">Avaliação Psiquiátrica</Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\nhistory.push(`/prontuarios/${id}/formularios/revisao-semestral-plano`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.quarterplan}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Revisão Semestral do Plano de Tratamento\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\nhistory.push(`/prontuarios/${id}/formularios/evolucao-mensal-ambientoterapia`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.monthlyEvolution}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Evolução Mensal do Paciente em Ambientoterapia\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\nhistory.push(`/prontuarios/${id}/formularios/evolucao-mensal-nutricao`)}\r\n            >\r\n              <ListItemIcon>\r\n                {progressTypeIcons.monthlyNutritionEvolution}\r\n              </ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Evolução Mensal da Nutrição\r\n              </Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\nhistory.push(`/prontuarios/${id}/formularios/evolucao-psiquiatrica`)}\r\n            >\r\n              <ListItemIcon>\r\n                {progressTypeIcons.psychiatryEvolution}\r\n              </ListItemIcon>\r\n              <Typography variant=\"inherit\">Evolução Psiquiátrica</Typography>\r\n            </MenuItem>\r\n\r\n            <Divider />\r\n\r\n            <MenuItem\r\n              /* prettier-ignore */\r\n              onClick={() =>\r\nhistory.push(`/prontuarios/${id}/formularios/encerramento-atendimento`)}\r\n            >\r\n              <ListItemIcon>{progressTypeIcons.closure}</ListItemIcon>\r\n              <Typography variant=\"inherit\">\r\n                Encerramento do Atendimento\r\n              </Typography>\r\n            </MenuItem>\r\n          </Menu>\r\n\r\n          <Button\r\n            className={classes.button}\r\n            variant=\"contained\"\r\n            color=\"primary\"\r\n            startIcon={<AddCircle />}\r\n            disabled={\r\n              record?.status !== 'active' ||\r\n              record?.supervisor_id?.includes(keycloak?.subject as string)\r\n            }\r\n            onClick={() => handleOpenProgress()}\r\n          >\r\n            Adicionar Evolução\r\n          </Button>\r\n          {/* TODO: Add reopen record button */}\r\n        </div>\r\n      </Grid>\r\n\r\n      <Divider />\r\n\r\n      <Grid container className={classes.filter}>\r\n        <Grid item xs={4} style={{ marginBottom: '10px' }}>\r\n          <FormLabel className={classes.formTitles}>Terapeuta</FormLabel>\r\n        </Grid>\r\n\r\n        <Grid item xs={4} style={{ marginBottom: '10px' }}>\r\n          <FormLabel className={classes.formTitles}>Setores</FormLabel>\r\n        </Grid>\r\n\r\n        <Grid item xs={4} style={{ marginBottom: '10px' }}>\r\n          <FormLabel className={classes.formTitles}>\r\n            Supervisão / Preceptoria\r\n          </FormLabel>\r\n        </Grid>\r\n\r\n        <Grid item xs={3}>\r\n          {users.length > 0 &&\r\n            professionalIds.length > 0 &&\r\n            coordIds.length > 0 && (\r\n              <ReactSelect\r\n                closeMenuOnSelect\r\n                isMulti\r\n                placeholder=\"Selecione\"\r\n                isDisabled={\r\n                  record?.status !== 'active' ||\r\n                  record?.supervisor_id?.includes(keycloak?.subject as string)\r\n                }\r\n                options={users.filter((user) =>\r\n                  professionalIds.includes(user.value),\r\n                )}\r\n                defaultValue={users.filter(\r\n                  (user) =>\r\n                    record?.professional_id.includes(user.value) &&\r\n                    professionalIds.includes(user.value),\r\n                )}\r\n                onChange={handleProfessionalSelect}\r\n                menuPosition=\"fixed\"\r\n              />\r\n            )}\r\n        </Grid>\r\n\r\n        <Grid item xs={1} />\r\n\r\n        <Grid item xs={3}>\r\n          {users.length > 0 &&\r\n            professionalIds.length > 0 &&\r\n            coordIds.length > 0 && (\r\n              <ReactSelect\r\n                closeMenuOnSelect\r\n                isMulti\r\n                placeholder=\"Selecione\"\r\n                isDisabled={\r\n                  record?.status !== 'active' ||\r\n                  record?.supervisor_id?.includes(keycloak?.subject as string)\r\n                }\r\n                options={users.filter((user) => coordIds.includes(user.value))}\r\n                defaultValue={users.filter(\r\n                  (user) =>\r\n                    record?.professional_id.includes(user.value) &&\r\n                    coordIds.includes(user.value),\r\n                )}\r\n                onChange={handleCoordSelect}\r\n                menuPosition=\"fixed\"\r\n              />\r\n            )}\r\n        </Grid>\r\n\r\n        <Grid item xs={1} />\r\n\r\n        <Grid item xs={3}>\r\n          {users.length > 0 && (\r\n            <ReactSelect\r\n              closeMenuOnSelect\r\n              isMulti\r\n              placeholder=\"Selecione\"\r\n              options={users}\r\n              styles={{ menuPortal: (base) => ({ ...base, zIndex: 9999 }) }}\r\n              isDisabled\r\n              onChange={handleSupervisorSelect}\r\n              defaultValue={users.filter((user) =>\r\n                record?.supervisor_id.includes(user.value),\r\n              )}\r\n              menuPosition=\"fixed\"\r\n            />\r\n          )}\r\n        </Grid>\r\n      </Grid>\r\n\r\n      <Divider />\r\n\r\n      <div className={classes.timelineContainer}>\r\n        <Form ref={formFilterRef} initialData={{}} onSubmit={handleFilters}>\r\n          <Grid container className={classes.filterHeader}>\r\n            <Grid item xs={3}>\r\n              <h3 className={classes.title}>\r\n                {`Evoluções - ${record?.patient?.name || ''} ${\r\n                  (record?.patient2 && ` / ${record?.patient2?.name}`) || ''\r\n                }`}\r\n              </h3>\r\n            </Grid>\r\n\r\n            <Grid item xs={1} />\r\n\r\n            <Grid item xs={3}>\r\n              <Select\r\n                name=\"type\"\r\n                isMulti={false}\r\n                placeholder=\"Tipo\"\r\n                isClearable\r\n                className={classes.item}\r\n                onChange={(e) => handleFilters('type', e)}\r\n                options={[\r\n                  { value: 'evolution', label: 'Evolução' },\r\n                  { value: 'init', label: 'Ficha inicial' },\r\n                  { value: 'review', label: 'Ficha de Avaliação' },\r\n                  { value: 'forwarding', label: 'Encaminhamento terapeuta' },\r\n                  {\r\n                    value: 'foodForward',\r\n                    label: 'Encaminhamento Transtornos Alimentares',\r\n                  },\r\n                  {\r\n                    value: 'socialService',\r\n                    label: 'Encaminhamento Serviço Social',\r\n                  },\r\n                  {\r\n                    value: 'parents',\r\n                    label: 'Encaminhamento Atendimento a Pais',\r\n                  },\r\n                  {\r\n                    value: 'psychopedagogy',\r\n                    label: 'Encaminhamento Psicopedagogia',\r\n                  },\r\n                  {\r\n                    value: 'groupForward',\r\n                    label: 'Encaminhamento Setor de Grupos',\r\n                  },\r\n                  { value: 'closure', label: 'Encerramento do Atendimento' },\r\n                  { value: 'discount', label: 'Redução do valor' },\r\n                  { value: 'diagnosis', label: 'Psicodiagnóstico' },\r\n                  { value: 'psychiatric', label: 'Avaliação Psiquiátrica' },\r\n                  { value: 'quarterplan', label: 'Plano semestral' },\r\n                  { value: 'screening', label: 'Triagem' },\r\n                  {\r\n                    value: 'monthlyEvolution',\r\n                    label: 'Evolução mensal ambientoterapia',\r\n                  },\r\n                ]}\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={3}>\r\n              <Select\r\n                name=\"professional\"\r\n                isMulti={false}\r\n                placeholder=\"Profissional\"\r\n                isClearable\r\n                className={classes.item}\r\n                onChange={(e) => handleFilters('author', e)}\r\n                options={authors}\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={2}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={date}\r\n                  className={classes.item}\r\n                  onChange={(d) => {\r\n                    setDate(d);\r\n                    handleFilters('date', d);\r\n                  }}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n          </Grid>\r\n        </Form>\r\n\r\n        <Divider />\r\n\r\n        <div id=\"timeline\" className={classes.timelineContainer}>\r\n          <Timeline align=\"left\" className={classes.timeline}>\r\n            {!loading && !progress.length && <EmptyProgress />}\r\n\r\n            {progress.map((p) => (\r\n              <TimelineItem data-test=\"true\" key={p._id}>\r\n                <TimelineOppositeContent className={classes.opposite}>\r\n                  <Typography variant=\"body1\" color=\"textSecondary\">\r\n                    {moment(p.createdAt).format('DD/MM/YYYY HH:mm')}\r\n                  </Typography>\r\n                </TimelineOppositeContent>\r\n                <TimelineSeparator>\r\n                  <TimelineDot color=\"inherit\">\r\n                    {progressTypeIcons[p?.type || '']}\r\n                  </TimelineDot>\r\n                  {progress[progress.length - 1]._id !== p._id && (\r\n                    <TimelineConnector />\r\n                  )}\r\n                </TimelineSeparator>\r\n                <TimelineContent className={classes.content}>\r\n                  <Paper\r\n                    elevation={4}\r\n                    className={classes.paper}\r\n                    style={{\r\n                      borderStyle: !p.approved ? 'dotted' : 'none',\r\n                      opacity: !p.approved ? '60%' : '100%',\r\n                    }}\r\n                  >\r\n                    <div\r\n                      style={{\r\n                        display: 'flex',\r\n                        justifyContent: 'space-between',\r\n                      }}\r\n                    >\r\n                      <Typography variant=\"h6\" component=\"h1\">\r\n                        {`${p.title} ${!p.approved ? '(Rascunho)' : ''}`}\r\n                      </Typography>\r\n\r\n                      <div>\r\n                        {(record?.professional_id?.includes(\r\n                          keycloak?.subject as string,\r\n                        ) ||\r\n                          keycloak.realmAccess?.roles.includes(\r\n                            RealmRoles.ADMIN,\r\n                          )) &&\r\n                          !p.approved && (\r\n                            <Button\r\n                              variant=\"contained\"\r\n                              color=\"primary\"\r\n                              className={classes.noteButton}\r\n                              startIcon={<Edit />}\r\n                              onClick={() => handleOpenEditProgress(p)}\r\n                            >\r\n                              Editar\r\n                            </Button>\r\n                          )}\r\n\r\n                        {/* TODO: review this */}\r\n                        {(record?.supervisor_id?.includes(\r\n                          keycloak?.subject as string,\r\n                        ) ||\r\n                          record?.professional_id?.includes(\r\n                            keycloak?.subject as string,\r\n                          ) ||\r\n                          keycloak.realmAccess?.roles.includes(\r\n                            RealmRoles.ADMIN,\r\n                          )) &&\r\n                          !p.approved && (\r\n                            <Button\r\n                              variant=\"contained\"\r\n                              color=\"primary\"\r\n                              style={{\r\n                                background: colors.green[700],\r\n                              }}\r\n                              className={classes.noteButton}\r\n                              startIcon={<Check />}\r\n                              onClick={() => handleSubmitApproveProgress(p._id)}\r\n                            >\r\n                              Aprovar\r\n                            </Button>\r\n                          )}\r\n\r\n                        {(record?.supervisor_id?.includes(\r\n                          keycloak?.subject as string,\r\n                        ) ||\r\n                          record?.professional_id?.includes(\r\n                            keycloak?.subject as string,\r\n                          ) ||\r\n                          keycloak.realmAccess?.roles.includes(\r\n                            RealmRoles.ADMIN,\r\n                          )) &&\r\n                          !p.approved && (\r\n                            <Button\r\n                              variant=\"contained\"\r\n                              color=\"primary\"\r\n                              style={{\r\n                                background: colors.red[700],\r\n                              }}\r\n                              className={classes.noteButton}\r\n                              startIcon={<Delete />}\r\n                              onClick={() => handleSubmitDeleteProgress(p._id)}\r\n                            >\r\n                              Deletar\r\n                            </Button>\r\n                          )}\r\n\r\n                        {record?.supervisor_id?.includes(\r\n                          keycloak?.subject as string,\r\n                        ) && (\r\n                          <Button\r\n                            variant=\"contained\"\r\n                            color=\"primary\"\r\n                            className={classes.noteButton}\r\n                            startIcon={<AddCircle />}\r\n                            onClick={() => handleOpenNote(p)}\r\n                          >\r\n                            Adicionar Nota\r\n                          </Button>\r\n                        )}\r\n                      </div>\r\n                    </div>\r\n\r\n                    <Typography>\r\n                      {p.content}\r\n\r\n                      <div className={classes.content}>\r\n                        {p.forms.map((form) => (\r\n                          <>\r\n                            <Link\r\n                              style={{ paddingRight: '2%' }}\r\n                              href={`/prontuarios/${record?._id}/formularios/${\r\n                                FormTypeToUrl[form.type]\r\n                              }/${form._id}`}\r\n                              key={form._id}\r\n                            >\r\n                              {`Ver ${TypeToTitle[form.type]}`}\r\n                            </Link>\r\n                          </>\r\n                        ))}\r\n                      </div>\r\n\r\n                      <div className={classes.content}>\r\n                        {p.files\r\n                          .filter((file) => file)\r\n                          .map((file) =>\r\n                            getFileChip(\r\n                              file.mimetype,\r\n                              file.originalname,\r\n                              file.path,\r\n                              handleDownload,\r\n                            ),\r\n                          )}\r\n                      </div>\r\n\r\n                      <Typography\r\n                        variant=\"body2\"\r\n                        color=\"textSecondary\"\r\n                        align=\"right\"\r\n                      >\r\n                        {`Adicionado por ${p.author} em ${moment(\r\n                          p.createdAt,\r\n                        ).format('DD/MM/YYYY HH:mm')}`}\r\n                      </Typography>\r\n                    </Typography>\r\n                  </Paper>\r\n\r\n                  {notes && (\r\n                    <Grid container justify=\"flex-end\">\r\n                      {p.notes.map((note) => (\r\n                        <Grid\r\n                          item\r\n                          style={{\r\n                            display:\r\n                              note.destination_id === keycloak?.subject ||\r\n                              note.author_id === keycloak?.subject\r\n                                ? ''\r\n                                : 'none',\r\n                          }}\r\n                        >\r\n                          <Paper\r\n                            elevation={4}\r\n                            className={classes.notes}\r\n                            style={{\r\n                              borderStyle: !note.saved ? 'dotted' : '',\r\n                              opacity: !note.saved ? '60%' : '100%',\r\n                            }}\r\n                          >\r\n                            <div\r\n                              style={{\r\n                                display: 'flex',\r\n                                justifyContent: 'space-between',\r\n                              }}\r\n                            >\r\n                              <Typography variant=\"subtitle1\" component=\"h1\">\r\n                                {`${note.title} ${\r\n                                  !note.saved ? '(Rascunho)' : ''\r\n                                }`}\r\n                              </Typography>\r\n\r\n                              <div>\r\n                                {record?.supervisor_id?.includes(\r\n                                  keycloak?.subject as string,\r\n                                ) &&\r\n                                  !note.saved && (\r\n                                    <>\r\n                                      <Tooltip title=\"Editar nota\">\r\n                                        <Button\r\n                                          variant=\"contained\"\r\n                                          color=\"primary\"\r\n                                          className={classes.editButton}\r\n                                          startIcon={<Edit />}\r\n                                          /* prettier-ignore */\r\n                                          onClick={() =>\r\n                                            handleOpenEditNote(note)}\r\n                                        />\r\n                                      </Tooltip>\r\n\r\n                                      <Tooltip title=\"Salvar nota\">\r\n                                        <Button\r\n                                          variant=\"contained\"\r\n                                          color=\"primary\"\r\n                                          style={{\r\n                                            background: colors.green[700],\r\n                                          }}\r\n                                          className={classes.editButton}\r\n                                          startIcon={<Check />}\r\n                                          /* prettier-ignore */\r\n                                          onClick={() =>\r\n                                      handleSubmitApproveNote(note)}\r\n                                        />\r\n                                      </Tooltip>\r\n                                    </>\r\n                                  )}\r\n                              </div>\r\n                            </div>\r\n\r\n                            <Typography variant=\"subtitle2\">\r\n                              {note.content}\r\n                            </Typography>\r\n\r\n                            <div className={classes.content}>\r\n                              {note.files.map((file) =>\r\n                                getFileChip(\r\n                                  file.mimetype,\r\n                                  file.originalname,\r\n                                  file.path,\r\n                                  handleDownload,\r\n                                ),\r\n                              )}\r\n                            </div>\r\n\r\n                            <Typography\r\n                              variant=\"subtitle2\"\r\n                              color=\"textSecondary\"\r\n                              align=\"right\"\r\n                            >\r\n                              {`Adicionado por ${note.author} em ${moment(\r\n                                note.createdAt,\r\n                              ).format('DD/MM HH:mm')}`}\r\n                            </Typography>\r\n                          </Paper>\r\n                        </Grid>\r\n                      ))}\r\n                    </Grid>\r\n                  )}\r\n                </TimelineContent>\r\n              </TimelineItem>\r\n            ))}\r\n          </Timeline>\r\n        </div>\r\n        {alert.isActive && <Snackbar {...alert} />}\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default ShowRecord;\r\n","import {\r\n  createStyles,\r\n  makeStyles,\r\n  TableCell,\r\n  Theme,\r\n  withStyles,\r\n} from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles({\r\n  table: {\r\n    minWidth: 650,\r\n  },\r\n  button: {\r\n    marginRight: 1,\r\n    '&:last-child': {\r\n      marginRight: 0,\r\n    },\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  searchArea: {\r\n    display: 'flex',\r\n    alignItems: 'center',\r\n  },\r\n  searchButton: {\r\n    marginLeft: '5px !important',\r\n  },\r\n  searchInput: {\r\n    marginLeft: '5px !important',\r\n  },\r\n});\r\n\r\nexport const StyledTableCell = withStyles((theme: Theme) =>\r\n  createStyles({\r\n    root: {\r\n      backgroundColor: theme.palette.primary.main,\r\n      color: theme.palette.background.default,\r\n    },\r\n    body: {\r\n      fontSize: 14,\r\n    },\r\n  }),\r\n)(TableCell);\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport moment from 'moment';\r\nimport * as Yup from 'yup';\r\n\r\nimport {\r\n  Paper,\r\n  Table,\r\n  TableBody,\r\n  TableCell,\r\n  TableContainer,\r\n  TableHead,\r\n  TableRow,\r\n  Grid,\r\n  FormLabel,\r\n  TablePagination,\r\n  Stack,\r\n  TextField,\r\n} from '@mui/material';\r\n\r\nimport {\r\n  Typography,\r\n  IconButton,\r\n  Dialog,\r\n  DialogTitle,\r\n  DialogContent,\r\n  DialogActions,\r\n  Button,\r\n  Link,\r\n  colors,\r\n  Tooltip,\r\n} from '@material-ui/core';\r\n\r\nimport {\r\n  AddCircle,\r\n  Edit,\r\n  Search,\r\n  CloudDownload as Export,\r\n  CloudDownload,\r\n} from '@material-ui/icons';\r\n\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport { useStyles, StyledTableCell } from './styles';\r\nimport { CreatePatientData } from './dto';\r\nimport Loader from '../../../components/Loader';\r\nimport Input from '../../../components/Input';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\n\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\n\r\nimport { Patient } from '../../../models/patient';\r\nimport Select from '../../../components/Select';\r\n\r\nconst Patients: React.FC = () => {\r\n  const classes = useStyles();\r\n  const api = useAxios();\r\n  const [patients, setPatients] = useState<Patient[]>([]);\r\n  const [document, setDocument] = useState('');\r\n  const [name, setName] = useState('');\r\n  const [link, setLink] = useState('');\r\n  const [linkOpen, setLinkOpen] = useState(false);\r\n  const [filters, setFilters] = useState({});\r\n  const [editPatient, setEditPatient] = useState<Patient>({} as Patient);\r\n  const [openEditPatient, setOpenEditPatient] = useState(false);\r\n  const [loading, setLoading] = useState(true);\r\n  const [openPatient, setOpenPatient] = useState(false);\r\n  const formRef = useRef<FormHandles>(null);\r\n  const [page, setPage] = useState(0);\r\n  const [rowsPerPage, setRowsPerPage] = useState(4);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getPatients() {\r\n      try {\r\n        const patientsResponse = await api.current?.get('/patients', {\r\n          params: filters,\r\n        });\r\n\r\n        setPatients(patientsResponse?.data);\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar pacientes.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getPatients();\r\n  }, [api, filters]);\r\n\r\n  const handleOpenPatient = () => {\r\n    setOpenPatient(true);\r\n  };\r\n\r\n  const handleClosePatient = () => {\r\n    setOpenPatient(false);\r\n  };\r\n\r\n  const handleCloseEditPatient = () => {\r\n    setEditPatient({} as Patient);\r\n    setOpenEditPatient(false);\r\n  };\r\n\r\n  const handleSearchPatient = useCallback(() => {\r\n    if (!document && !name) {\r\n      setFilters({});\r\n      return;\r\n    }\r\n\r\n    const aux = {} as any;\r\n\r\n    if (document) aux.document = document;\r\n    if (name) aux.name = name;\r\n\r\n    setFilters(aux);\r\n  }, [document, name]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmitPatient = useCallback(\r\n    async (data: CreatePatientData) => {\r\n      try {\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        const schema = Yup.object().shape({\r\n          name: Yup.string().required('Nome é obrigatório'),\r\n          document: Yup.string().required('Documento é obrigatório'),\r\n          document_type: Yup.string()\r\n            .required('Tipo do documento é obrigatório')\r\n            .oneOf(['cpf', 'rg', 'certidao'], 'Preencha o tipo do documento'),\r\n          email: Yup.string().email(),\r\n          birth: Yup.string(),\r\n        });\r\n\r\n        await schema.validate(data, { abortEarly: false });\r\n        if (!data.email) delete data.email;\r\n        if (!data.birth) delete data.birth;\r\n\r\n        const newPatient = await api.current?.post(`/patients`, data);\r\n\r\n        if (newPatient?.data) setPatients([newPatient?.data, ...patients]);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Paciente criado com sucesso.',\r\n        });\r\n        handleClosePatient();\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao criar paciente.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, patients],\r\n  );\r\n\r\n  const handleSubmitEditPatient = useCallback(\r\n    async (data: CreatePatientData) => {\r\n      try {\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        const schema = Yup.object().shape({\r\n          name: Yup.string().required('Nome é obrigatório'),\r\n          email: Yup.string().email(),\r\n          birth: Yup.string(),\r\n        });\r\n\r\n        await schema.validate(data, { abortEarly: false });\r\n        if (!data.email) delete data.email;\r\n        if (!data.birth) delete data.birth;\r\n\r\n        await api.current?.patch(`/patients/${editPatient._id}`, data);\r\n        const currentPatients = patients;\r\n        const patientIdx = currentPatients.findIndex(\r\n          (patient) => patient._id === editPatient._id,\r\n        );\r\n        currentPatients[patientIdx] = data as Patient;\r\n        setPatients(currentPatients);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Paciente atualizado com sucesso.',\r\n        });\r\n        handleCloseEditPatient();\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao atualizar paciente.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, editPatient, patients],\r\n  );\r\n\r\n  const handleChangePage = (event: any, newPage: any) => {\r\n    setPage(newPage);\r\n  };\r\n\r\n  const handleChangeRowsPerPage = (event: any) => {\r\n    setRowsPerPage(+event.target.value);\r\n    setPage(0);\r\n  };\r\n\r\n  const handleOpenEditPatient = useCallback(\r\n    async (id: string) => {\r\n      try {\r\n        const patientResponse = await api.current?.get(`/patients/${id}`);\r\n\r\n        setEditPatient(patientResponse?.data);\r\n        setOpenEditPatient(true);\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao buscar paciente.',\r\n        });\r\n      }\r\n    },\r\n    [api],\r\n  );\r\n\r\n  const handleLinkClose = () => {\r\n    setLinkOpen(false);\r\n    setLink('');\r\n  };\r\n\r\n  const handleClickLinkOpen = useCallback(async () => {\r\n    resetAlert();\r\n    setLoading(true);\r\n    setLink('--');\r\n\r\n    try {\r\n      const linkResponse = await api.current?.get('/patients/search/print');\r\n\r\n      if (linkResponse?.data && linkResponse?.data.link) {\r\n        setLink(linkResponse?.data.link);\r\n      } else {\r\n        throw new Error();\r\n      }\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Arquivo gerado com sucesso.',\r\n      });\r\n\r\n      setLinkOpen(true);\r\n      setLoading(false);\r\n    } catch (error) {\r\n      setLoading(false);\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'error',\r\n        message: 'Erro ao gerar arquivo.',\r\n      });\r\n    }\r\n  }, [api]);\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      <Dialog\r\n        open={openPatient}\r\n        onClose={handleClosePatient}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <Form ref={formRef} onSubmit={handleSubmitPatient}>\r\n          <DialogTitle id=\"form-dialog-title\">Cadastrar Paciente</DialogTitle>\r\n\r\n          <DialogContent>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Insira os dados do paciente\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input id=\"name\" label=\"Nome\" name=\"name\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input id=\"document\" label=\"Documento\" name=\"document\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Select\r\n                  name=\"document_type\"\r\n                  isMulti={false}\r\n                  placeholder=\"Tipo\"\r\n                  isClearable\r\n                  menuPosition=\"fixed\"\r\n                  options={[\r\n                    { value: 'rg', label: 'RG' },\r\n                    { value: 'cpf', label: 'CPF' },\r\n                    // { value: 'certidao', label: 'Certidão de Nascimento' },\r\n                  ]}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"email\" label=\"E-mail (opcional)\" name=\"email\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"birth\"\r\n                  label=\"Data de Nascimento (opcional)\"\r\n                  name=\"birth\"\r\n                  placeholder=\"2021-01-01\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n          <DialogActions>\r\n            <Button onClick={handleClosePatient}>Cancelar</Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog>\r\n\r\n      <Dialog\r\n        open={linkOpen}\r\n        fullWidth\r\n        onClose={handleLinkClose}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <DialogTitle id=\"form-dialog-title\">\r\n          Arquivo da Pesquisa gerado\r\n        </DialogTitle>\r\n\r\n        <DialogContent>\r\n          <Link href={link} target=\"blank\">\r\n            <Button\r\n              fullWidth\r\n              style={{ background: colors.green[700], color: '#fff' }}\r\n              startIcon={<CloudDownload />}\r\n              onClick={() => console.log('Baixar arquivo')}\r\n            >\r\n              Baixar arquivo\r\n            </Button>\r\n          </Link>\r\n        </DialogContent>\r\n\r\n        <DialogActions>\r\n          <Button onClick={handleLinkClose}>Fechar</Button>\r\n        </DialogActions>\r\n      </Dialog>\r\n\r\n      <Dialog\r\n        open={openEditPatient}\r\n        onClose={handleCloseEditPatient}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <Form\r\n          ref={formRef}\r\n          initialData={editPatient}\r\n          onSubmit={handleSubmitEditPatient}\r\n        >\r\n          <DialogTitle id=\"form-dialog-title\">Editar Paciente</DialogTitle>\r\n\r\n          <DialogContent>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Insira os dados do paciente\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input id=\"name\" label=\"Nome\" name=\"name\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input id=\"document\" label=\"Documento\" name=\"document\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Select\r\n                  name=\"document_type\"\r\n                  isMulti={false}\r\n                  placeholder=\"Tipo\"\r\n                  isClearable\r\n                  menuPosition=\"fixed\"\r\n                  options={[\r\n                    { value: 'rg', label: 'RG' },\r\n                    { value: 'cpf', label: 'CPF' },\r\n                    // { value: 'certidao', label: 'Certidão de Nascimento' },\r\n                  ]}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"email\" label=\"E-mail (opcional)\" name=\"email\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"birth\"\r\n                  label=\"Data de Nascimento (opcional)\"\r\n                  name=\"birth\"\r\n                  placeholder=\"23/02/1997\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n          <DialogActions>\r\n            <Button onClick={handleCloseEditPatient}>Cancelar</Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog>\r\n\r\n      <Stack\r\n        flexDirection=\"row\"\r\n        justifyContent=\"space-between\"\r\n        alignItems=\"center\"\r\n        marginY=\"1%\"\r\n      >\r\n        <div>\r\n          <Button\r\n            variant=\"contained\"\r\n            color=\"primary\"\r\n            startIcon={<AddCircle />}\r\n            onClick={() => handleOpenPatient()}\r\n          >\r\n            Adicionar Paciente\r\n          </Button>\r\n\r\n          <span> </span>\r\n\r\n          <Tooltip title=\"Temporariamente Indisponível\">\r\n            <span className={classes.button}>\r\n              <Button\r\n                variant=\"contained\"\r\n                // color=\"\"\r\n                startIcon={<Export />}\r\n                // style={{\r\n                //   background: colors.green[700],\r\n                //   color: '#fff',\r\n                // }}\r\n                onClick={() => {\r\n                  handleClickLinkOpen();\r\n                }}\r\n                disabled\r\n              >\r\n                Exportar Pesquisa\r\n              </Button>\r\n            </span>\r\n          </Tooltip>\r\n        </div>\r\n\r\n        <div className={classes.searchArea}>\r\n          <TextField\r\n            size=\"small\"\r\n            label=\"Documento\"\r\n            id=\"search_document\"\r\n            className={classes.searchButton}\r\n            placeholder=\"Digite um documento\"\r\n            onChange={(e) => setDocument(e.target.value)}\r\n          />\r\n\r\n          <TextField\r\n            size=\"small\"\r\n            label=\"Nome\"\r\n            id=\"search_name\"\r\n            className={classes.searchButton}\r\n            placeholder=\"Digite um nome\"\r\n            onChange={(e) => setName(e.target.value)}\r\n          />\r\n\r\n          <Button\r\n            color=\"primary\"\r\n            variant=\"contained\"\r\n            startIcon={<Search />}\r\n            className={classes.searchButton}\r\n            onClick={() => handleSearchPatient()}\r\n          >\r\n            Buscar\r\n          </Button>\r\n        </div>\r\n      </Stack>\r\n\r\n      <TableContainer\r\n        component={Paper}\r\n        style={{ display: !loading ? '' : 'none', marginBottom: '2%' }}\r\n      >\r\n        <Table className={classes.table}>\r\n          <TableHead>\r\n            <TableRow>\r\n              <StyledTableCell>Nome</StyledTableCell>\r\n              <StyledTableCell>Prontuário</StyledTableCell>\r\n              <StyledTableCell>Email</StyledTableCell>\r\n              <StyledTableCell>Documento</StyledTableCell>\r\n              <StyledTableCell>Data de Nascimento</StyledTableCell>\r\n              <StyledTableCell>Data de Cadastro</StyledTableCell>\r\n              <StyledTableCell>Ultima Atualização</StyledTableCell>\r\n              <StyledTableCell>Editar</StyledTableCell>\r\n            </TableRow>\r\n          </TableHead>\r\n          <TableBody>\r\n            {!patients.length && (\r\n              <TableRow>\r\n                <TableCell component=\"th\" scope=\"row\" colSpan={7}>\r\n                  <Typography>Nenhum paciente encontrado.</Typography>\r\n                </TableCell>\r\n              </TableRow>\r\n            )}\r\n\r\n            {(rowsPerPage > 0\r\n              ? patients.slice(\r\n                  page * rowsPerPage,\r\n                  page * rowsPerPage + rowsPerPage,\r\n                )\r\n              : patients\r\n            ).map((patient) => (\r\n              <TableRow key={patient._id}>\r\n                <TableCell component=\"th\" scope=\"row\">\r\n                  {patient.name}\r\n                </TableCell>\r\n                <TableCell component=\"th\" scope=\"row\">\r\n                  {patient.recordNumber || '--'}\r\n                </TableCell>\r\n                <TableCell>{`${patient.email || '--'}`}</TableCell>\r\n                <TableCell>\r\n                  {`${patient.document || '--'} (${\r\n                    patient.document_type\r\n                      ? patient.document_type.toUpperCase()\r\n                      : '--'\r\n                  })`}\r\n                </TableCell>\r\n                <TableCell>\r\n                  {!patient.birth\r\n                    ? '--'\r\n                    : moment(patient.birth).add(1, 'day').format('DD/MM/YYYY')}\r\n                </TableCell>\r\n                <TableCell>\r\n                  {moment(patient.createdAt).format('DD/MM/YYYY HH:mm')}\r\n                </TableCell>\r\n                <TableCell>\r\n                  {moment(patient.updatedAt).format('DD/MM/YYYY HH:mm')}\r\n                </TableCell>\r\n                <TableCell align=\"center\">\r\n                  <IconButton\r\n                    onClick={() => {\r\n                      handleOpenEditPatient(patient._id);\r\n                    }}\r\n                    color=\"primary\"\r\n                  >\r\n                    <Edit />\r\n                  </IconButton>\r\n                </TableCell>\r\n              </TableRow>\r\n            ))}\r\n          </TableBody>\r\n        </Table>\r\n\r\n        <TablePagination\r\n          rowsPerPageOptions={[5, 10, 25, 100]}\r\n          component=\"div\"\r\n          count={patients.length}\r\n          rowsPerPage={rowsPerPage}\r\n          labelRowsPerPage={<span>Pacientes por página:</span>}\r\n          labelDisplayedRows={({ count, from, to }) => {\r\n            return `${from} - ${to} de ${count}`;\r\n          }}\r\n          page={page}\r\n          onPageChange={handleChangePage}\r\n          onRowsPerPageChange={handleChangeRowsPerPage}\r\n        />\r\n      </TableContainer>\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default Patients;\r\n","import React, { useEffect, useRef, InputHTMLAttributes } from 'react';\r\n\r\nimport { useField } from '@unform/core';\r\nimport { FormControlLabel, Checkbox as MuiCheckbox } from '@material-ui/core';\r\n\r\ninterface Props {\r\n  name: string;\r\n  label?: string;\r\n  value?: string;\r\n}\r\n\r\ntype InputProps = InputHTMLAttributes<HTMLInputElement> & Props;\r\n\r\nconst Checkbox: React.FC<InputProps> = ({ name, value, label, ...rest }) => {\r\n  const inputRef = useRef<HTMLInputElement>(null);\r\n  const { fieldName, defaultValue, registerField, error } = useField(name);\r\n\r\n  useEffect(() => {\r\n    registerField({\r\n      name: fieldName,\r\n      ref: inputRef,\r\n      getValue: (ref) => {\r\n        return ref.current.checked;\r\n      },\r\n      clearValue: (ref) => {\r\n        ref.current.checked = defaultValue;\r\n      },\r\n      setValue: (ref, valuee) => {\r\n        ref.current.checked = valuee;\r\n      },\r\n    });\r\n  }, [defaultValue, fieldName, registerField]);\r\n\r\n  return (\r\n    <div>\r\n      <FormControlLabel\r\n        id={fieldName}\r\n        value={value}\r\n        control={\r\n          <MuiCheckbox inputRef={inputRef} defaultChecked={defaultValue} />\r\n        }\r\n        label={label}\r\n        name={name}\r\n      />\r\n\r\n      {error && <span>{error}</span>}\r\n    </div>\r\n  );\r\n};\r\n\r\nCheckbox.defaultProps = {\r\n  label: 'value',\r\n  value: 'value',\r\n};\r\n\r\nexport default Checkbox;\r\n","import React, {\r\n  useEffect,\r\n  useRef,\r\n  InputHTMLAttributes,\r\n  RefObject,\r\n} from 'react';\r\n\r\nimport { useField } from '@unform/core';\r\nimport { FormControlLabel } from '@material-ui/core';\r\n\r\ninterface Props {\r\n  name: string;\r\n  options: {\r\n    id: string;\r\n    value: string;\r\n    label: string;\r\n  }[];\r\n}\r\n\r\ntype RefInputEl = RefObject<HTMLInputElement[]>;\r\n\r\ntype InputProps = InputHTMLAttributes<HTMLInputElement> & Props;\r\n\r\nconst Radio: React.FC<InputProps> = ({\r\n  name,\r\n  options,\r\n  ...rest\r\n}: InputProps) => {\r\n  const inputRefs = useRef([]);\r\n  const { fieldName, registerField, defaultValue = '', error } = useField(name);\r\n\r\n  useEffect(() => {\r\n    registerField({\r\n      name: fieldName,\r\n      ref: inputRefs,\r\n      getValue: (refs: RefInputEl) => {\r\n        if (!refs.current) return '';\r\n\r\n        return refs.current.find((input) => input?.checked)?.value || '';\r\n      },\r\n      setValue: (refs: RefInputEl, id: string) => {\r\n        if (refs.current) {\r\n          const inputRef = refs.current.find((ref) => ref.id === id);\r\n          if (inputRef) inputRef.checked = true;\r\n        }\r\n      },\r\n      clearValue: (refs: RefInputEl) => {\r\n        if (refs.current) {\r\n          const inputRef = refs.current.find((ref) => ref.checked === true);\r\n          if (inputRef) inputRef.checked = false;\r\n        }\r\n      },\r\n    });\r\n  }, [fieldName, registerField]);\r\n\r\n  return (\r\n    <div\r\n      style={{\r\n        display: 'flex',\r\n        width: '100%',\r\n        margin: '5px',\r\n        padding: '5px',\r\n        justifyContent: 'space-around',\r\n      }}\r\n    >\r\n      {options.map((option, index) => (\r\n        <FormControlLabel\r\n          key={option.id}\r\n          label={option.label}\r\n          /* prettier-ignore */\r\n          control={(\r\n            <input\r\n              type=\"radio\"\r\n              ref={(ref) => {\r\n                  inputRefs.current[index] = ref as never;\r\n                }}\r\n              id={option.id}\r\n              name={name}\r\n              defaultChecked={defaultValue === option.value}\r\n              value={option.value}\r\n              {...rest}\r\n            />\r\n            )}\r\n          labelPlacement=\"start\"\r\n        />\r\n      ))}\r\n\r\n      {error && <span>{error}</span>}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Radio;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  RadioGroup,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\nimport { useHistory, useParams } from 'react-router';\r\n\r\nimport moment from 'moment';\r\nimport Input from '../../../components/Input';\r\nimport CustomCheckbox from '../../../components/Checkbox';\r\nimport CustomRadio from '../../../components/Radio';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Loader from '../../../components/Loader';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst InitForm: React.FC = () => {\r\n  const api = useAxios();\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const { formId } = useParams<{ id: string; formId: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getInitFormData() {\r\n      try {\r\n        const formResponse = await api.current?.get(`/forms/${formId}`);\r\n\r\n        setForm(formResponse?.data);\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar formulário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getInitFormData();\r\n  }, [api, formId]);\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        setForm({ ...form, answers: data } as FormModel);\r\n        formRef.current?.setErrors({});\r\n\r\n        const schema = Yup.object().shape({\r\n          observations: Yup.string(),\r\n        });\r\n\r\n        await schema.validate(data, { abortEarly: false });\r\n\r\n        await api.current?.patch(`/forms/${formId}`, {\r\n          answers: data,\r\n        });\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Ficha atualizada com sucesso.',\r\n        });\r\n      } catch (error: any) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao atualizar ficha.',\r\n          });\r\n        }\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [api, formId, form],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              Ficha de Contato Inicial\r\n            </Typography>\r\n\r\n            <Typography\r\n              variant=\"h6\"\r\n              component=\"h6\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              (preenchida pelo paciente ou responsável)\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <FormLabel className={classes.formTitles}>\r\n              DADOS DE IDENTIFICAÇÃO:\r\n            </FormLabel>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  1 - DO PACIENTE:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"patient_name\"\r\n                  label=\"Nome\"\r\n                  disabled\r\n                  name=\"patient_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"patient_gender\"\r\n                  label=\"Gênero\"\r\n                  disabled\r\n                  name=\"patient_gender\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"patient_race\"\r\n                  label=\"Raça/cor\"\r\n                  disabled\r\n                  name=\"patient_race\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"patient_birth\"\r\n                  label=\"Data de Nascimento\"\r\n                  placeholder=\"23/02/1997\"\r\n                  disabled\r\n                  name=\"patient_birth\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"patient_age\"\r\n                  label=\"Idade\"\r\n                  disabled\r\n                  name=\"patient_age\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input id=\"patient_rg\" label=\"RG\" disabled name=\"patient_rg\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"patient_cpf\"\r\n                  label=\"CPF\"\r\n                  disabled\r\n                  name=\"patient_cpf\"\r\n                />\r\n              </Grid>\r\n              {/*\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"patient_certidao\"\r\n                  label=\"Certidão de Nascimento\"\r\n                  disabled name=\"patient_certidao\"\r\n                />\r\n              </Grid> */}\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"patient_birth_local\"\r\n                  label=\"Local de Nascimento\"\r\n                  disabled\r\n                  name=\"patient_birth_local\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"patient_phone\"\r\n                  label=\"Telefone\"\r\n                  disabled\r\n                  name=\"patient_phone\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>ENDEREÇO:</FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"address_street\"\r\n                  label=\"Logradouro\"\r\n                  disabled\r\n                  name=\"address_street\"\r\n                  placeholder=\"Rua/Av./Denominação/número/complemento\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"address_neighborhood\"\r\n                  label=\"Bairro\"\r\n                  disabled\r\n                  name=\"address_neighborhood\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"address_city\"\r\n                  label=\"Cidade\"\r\n                  disabled\r\n                  name=\"address_city\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"address_zipcode\"\r\n                  label=\"CEP\"\r\n                  disabled\r\n                  name=\"address_zipcode\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  ESCOLARIDADE:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"school_level\"\r\n                    options={[\r\n                      {\r\n                        id: '1',\r\n                        value: 'kid_school',\r\n                        label: 'Educação Infantil',\r\n                      },\r\n                      {\r\n                        id: '2',\r\n                        value: 'fundamental_school',\r\n                        label: 'Ensino Fundamental',\r\n                      },\r\n                      {\r\n                        id: '3',\r\n                        value: 'middle_school',\r\n                        label: 'Ensino Médio',\r\n                      },\r\n                      { id: '4', value: 'school_level_other', label: 'Outro' },\r\n                    ]}\r\n                  />\r\n\r\n                  {/* <Input id=\"school_level\" label=\"Outro\" disabled name=\"school_level\" /> */}\r\n                </RadioGroup>\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"school_year\"\r\n                  label=\"Ano\"\r\n                  disabled\r\n                  name=\"school_year\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"school_period\"\r\n                  label=\"Turno\"\r\n                  disabled\r\n                  name=\"school_period\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"school_fails\"\r\n                  label=\"Número de repetências\"\r\n                  disabled\r\n                  name=\"school_fails\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"school_name\"\r\n                  label=\"Nome da Escola\"\r\n                  disabled\r\n                  name=\"school_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"school_type\"\r\n                    options={[\r\n                      {\r\n                        id: '1',\r\n                        value: 'city_school',\r\n                        label: 'Escola Municipal',\r\n                      },\r\n                      {\r\n                        id: '2',\r\n                        value: 'state_school',\r\n                        label: 'Escola Estadual',\r\n                      },\r\n                      {\r\n                        id: '3',\r\n                        value: 'private_school',\r\n                        label: 'Escola Privada',\r\n                      },\r\n                      { id: '4', value: 'school_level_other', label: 'Outro' },\r\n                    ]}\r\n                  />\r\n                </RadioGroup>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  2 - DOS RESPONSÁVEIS:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Responsável 1\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"responsible_1_name\"\r\n                  label=\"Nome\"\r\n                  disabled\r\n                  name=\"responsible_1_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"responsible_1_rg\"\r\n                  label=\"RG\"\r\n                  disabled\r\n                  name=\"responsible_1_rg\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"responsible_1_cpf\"\r\n                  label=\"CPF\"\r\n                  disabled\r\n                  name=\"responsible_1_cpf\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"responsible_1_birth\"\r\n                  label=\"Data de Nascimento\"\r\n                  placeholder=\"23/02/1997\"\r\n                  disabled\r\n                  name=\"responsible_1_birth\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"responsible_1_phone_1\"\r\n                  label=\"Telefones\"\r\n                  disabled\r\n                  name=\"responsible_1_phone_1\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"responsible_1_phone_2\"\r\n                  label=\"Telefones\"\r\n                  disabled\r\n                  name=\"responsible_1_phone_2\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"responsible_1_email\"\r\n                  label=\"E-mail\"\r\n                  disabled\r\n                  name=\"responsible_1_email\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Grau de parentesco com o paciente:\r\n                </FormLabel>\r\n\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"responsible_1_parent\"\r\n                    options={[\r\n                      { id: '1', value: 'mother', label: 'Mãe' },\r\n                      {\r\n                        id: '2',\r\n                        value: 'father',\r\n                        label: 'Pai',\r\n                      },\r\n                      { id: '3', value: 'other', label: 'Outro' },\r\n                    ]}\r\n                  />\r\n\r\n                  {/* <Input\r\n                id=\"responsible_1_parent\"\r\n                label=\"Outro\"\r\n                disabled name=\"responsible_1_parent\"\r\n              /> */}\r\n                </RadioGroup>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Grau de Instrução:\r\n                </FormLabel>\r\n\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"responsible_1_school_level\"\r\n                    options={[\r\n                      {\r\n                        id: '1',\r\n                        value: 'fundamental_school',\r\n                        label: 'Ensino Fundamental',\r\n                      },\r\n                      {\r\n                        id: '2',\r\n                        value: 'middle_school',\r\n                        label: 'Ensino Médio',\r\n                      },\r\n                      {\r\n                        id: '3',\r\n                        value: 'superior_school',\r\n                        label: 'Ensino Superior',\r\n                      },\r\n                      { id: '4', value: 'other', label: 'Outro' },\r\n                    ]}\r\n                  />\r\n\r\n                  {/* <Input\r\n                id=\"responsible_1_school_level\"\r\n                label=\"Outro\"\r\n                disabled name=\"responsible_1_school_level\"\r\n              /> */}\r\n                </RadioGroup>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"responsible_1_profession\"\r\n                  label=\"Profissão\"\r\n                  disabled\r\n                  name=\"responsible_1_profession\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"responsible_1_income\"\r\n                  label=\"Renda (R$)\"\r\n                  disabled\r\n                  name=\"responsible_1_income\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Responsável 2\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"responsible_2_name\"\r\n                  label=\"Nome\"\r\n                  disabled\r\n                  name=\"responsible_2_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"responsible_2_rg\"\r\n                  label=\"RG\"\r\n                  disabled\r\n                  name=\"responsible_2_rg\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"responsible_2_cpf\"\r\n                  label=\"CPF\"\r\n                  disabled\r\n                  name=\"responsible_2_cpf\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"responsible_2_birth\"\r\n                  label=\"Data de Nascimento\"\r\n                  placeholder=\"23/02/1997\"\r\n                  disabled\r\n                  name=\"responsible_2_birth\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"responsible_2_phone_2\"\r\n                  label=\"Telefones\"\r\n                  disabled\r\n                  name=\"responsible_2_phone_2\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"responsible_2_phone_2\"\r\n                  label=\"Telefones\"\r\n                  disabled\r\n                  name=\"responsible_2_phone_2\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"responsible_2_email\"\r\n                  label=\"E-mail\"\r\n                  disabled\r\n                  name=\"responsible_2_email\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Grau de parentesco com o paciente:\r\n                </FormLabel>\r\n\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"responsible_2_parent\"\r\n                    options={[\r\n                      { id: '1', value: 'mother', label: 'Mãe' },\r\n                      {\r\n                        id: '2',\r\n                        value: 'father',\r\n                        label: 'Pai',\r\n                      },\r\n                      { id: '3', value: 'other', label: 'Outro' },\r\n                    ]}\r\n                  />\r\n\r\n                  {/* <Input\r\n                id=\"responsible_2_parent\"\r\n                label=\"Outro\"\r\n                disabled name=\"responsible_2_parent\"\r\n              /> */}\r\n                </RadioGroup>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Grau de Instrução:\r\n                </FormLabel>\r\n\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"responsible_2_school_level\"\r\n                    options={[\r\n                      {\r\n                        id: '1',\r\n                        value: 'fundamental_school',\r\n                        label: 'Ensino Fundamental',\r\n                      },\r\n                      {\r\n                        id: '2',\r\n                        value: 'middle_school',\r\n                        label: 'Ensino Médio',\r\n                      },\r\n                      {\r\n                        id: '3',\r\n                        value: 'superior_school',\r\n                        label: 'Ensino Superior',\r\n                      },\r\n                      { id: '4', value: 'other', label: 'Outro' },\r\n                    ]}\r\n                  />\r\n\r\n                  {/* <Input\r\n                id=\"responsible_2_school_level\"\r\n                label=\"Outro\"\r\n                disabled name=\"responsible_2_school_level\"\r\n              /> */}\r\n                </RadioGroup>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"responsible_2_profession\"\r\n                  label=\"Profissão\"\r\n                  disabled\r\n                  name=\"responsible_2_profession\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"responsible_2_income\"\r\n                  label=\"Renda (R$)\"\r\n                  disabled\r\n                  name=\"responsible_2_income\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Responsável pelo custeio do tratamento:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"payer_same\"\r\n                  label=\"Mesmos acima\"\r\n                  disabled\r\n                  name=\"payer_same\"\r\n                />\r\n                <Input\r\n                  id=\"payer_other\"\r\n                  label=\"Outro\"\r\n                  disabled\r\n                  name=\"payer_other\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"payer_parent\"\r\n                  label=\"Grau de parentesco com o paciente (se houver)\"\r\n                  disabled\r\n                  name=\"payer_parent\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"payer_phone\"\r\n                  label=\"Telefone\"\r\n                  disabled\r\n                  name=\"payer_phone\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"payer_income\"\r\n                  label=\"Renda (R$)\"\r\n                  disabled\r\n                  name=\"payer_income\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  MOTIVO DA PROCURA AO CEAPIA:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"Descreva brevemente quais são e quando começaram as questões que os trazem ao CEAPIA\"\r\n                  disabled\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  RELAÇÃO DE TODAS AS PESSOAS QUE RESIDEM NA CASA:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              {/* 1) */}\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"resident_1_name\"\r\n                  label=\"Nome\"\r\n                  disabled\r\n                  name=\"resident_1_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"resident_1_age\"\r\n                  label=\"Idade\"\r\n                  disabled\r\n                  name=\"resident_1_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  id=\"resident_1_parent\"\r\n                  label=\"Parentesco\"\r\n                  disabled\r\n                  name=\"resident_1_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  id=\"resident_1_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  disabled\r\n                  name=\"resident_1_ocupation\"\r\n                />\r\n              </Grid>\r\n\r\n              {/* 2) */}\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"resident_2_name\"\r\n                  label=\"Nome\"\r\n                  disabled\r\n                  name=\"resident_2_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"resident_2_age\"\r\n                  label=\"Idade\"\r\n                  disabled\r\n                  name=\"resident_2_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  id=\"resident_2_parent\"\r\n                  label=\"Parentesco\"\r\n                  disabled\r\n                  name=\"resident_2_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  id=\"resident_2_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  disabled\r\n                  name=\"resident_2_ocupation\"\r\n                />\r\n              </Grid>\r\n\r\n              {/* 3) */}\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"resident_3_name\"\r\n                  label=\"Nome\"\r\n                  disabled\r\n                  name=\"resident_3_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"resident_3_age\"\r\n                  label=\"Idade\"\r\n                  disabled\r\n                  name=\"resident_3_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  id=\"resident_3_parent\"\r\n                  label=\"Parentesco\"\r\n                  disabled\r\n                  name=\"resident_3_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  id=\"resident_3_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  disabled\r\n                  name=\"resident_3_ocupation\"\r\n                />\r\n              </Grid>\r\n\r\n              {/* 4) */}\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"resident_4_name\"\r\n                  label=\"Nome\"\r\n                  disabled\r\n                  name=\"resident_4_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"resident_4_age\"\r\n                  label=\"Idade\"\r\n                  disabled\r\n                  name=\"resident_4_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  id=\"resident_4_parent\"\r\n                  label=\"Parentesco\"\r\n                  disabled\r\n                  name=\"resident_4_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  id=\"resident_4_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  disabled\r\n                  name=\"resident_4_ocupation\"\r\n                />\r\n              </Grid>\r\n\r\n              {/* 5) */}\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"resident_5_name\"\r\n                  label=\"Nome\"\r\n                  disabled\r\n                  name=\"resident_5_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"resident_5_age\"\r\n                  label=\"Idade\"\r\n                  disabled\r\n                  name=\"resident_5_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  id=\"resident_5_parent\"\r\n                  label=\"Parentesco\"\r\n                  disabled\r\n                  name=\"resident_5_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  id=\"resident_5_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  disabled\r\n                  name=\"resident_5_ocupation\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Como soube do CEAPIA?\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"know_school\"\r\n                  label=\"Escola. Qual?\"\r\n                  disabled\r\n                  name=\"know_school\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"know_event\"\r\n                  label=\"Evento realizado no CEAPIA. Qual?\"\r\n                  disabled\r\n                  name=\"know_event\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"know_social\"\r\n                  label=\"Facebook/Instagram/Site.\"\r\n                  disabled\r\n                  name=\"know_social\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"know_indication\"\r\n                  label=\"Teve indicação de alguém? Quem?\"\r\n                  disabled\r\n                  name=\"know_indication\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"know_others\"\r\n                  label=\"Outros\"\r\n                  disabled\r\n                  name=\"know_others\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Já preencheu ficha ou realizou atendimento no Ceapia? (para o\r\n                  paciente acima mencionado)\r\n                </FormLabel>\r\n\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"appointment\"\r\n                    options={[\r\n                      { id: '1', value: 'yes', label: 'Sim' },\r\n                      {\r\n                        id: '2',\r\n                        value: 'no',\r\n                        label: 'Não',\r\n                      },\r\n                    ]}\r\n                  />\r\n                </RadioGroup>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"appointment_when\"\r\n                  label=\"Se sim, quando?\"\r\n                  disabled\r\n                  name=\"appointment_when\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"appointment_who\"\r\n                  label=\"Com quem?\"\r\n                  disabled\r\n                  name=\"appointment_who\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"appointment_familiar\"\r\n                  label=\"Já teve familiar em atendimento no CEAPIA? Quem:\"\r\n                  disabled\r\n                  name=\"appointment_familiar\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"current_appointment_familiar\"\r\n                  label=\"Atualmente possui familiar em atendimento no CEAPIA? Quem:\"\r\n                  disabled\r\n                  name=\"current_appointment_familiar\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Observações:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"observations\"\r\n                  label=\"Observações (uso interno)\"\r\n                  name=\"observations\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  TERMO DE AUTORIZAÇÃO:\r\n                </FormLabel>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                Eu\r\n                <Input\r\n                  id=\"term_responsible_name\"\r\n                  label=\"Nome do responsável\"\r\n                  disabled\r\n                  name=\"term_responsible_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                responsável por\r\n                <Input\r\n                  id=\"term_responsible_for\"\r\n                  label=\"Responsável por\"\r\n                  disabled\r\n                  name=\"term_responsible_for\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                estou ciente de que o CEAPIA é uma Instituição que visa o\r\n                ensino, o atendimento e a pesquisa na infância e na adolescência\r\n                e autorizo que os dados referentes ao atendimento possam ser\r\n                utilizados na Instituição para fins de pesquisa. Outrossim,\r\n                autorizo a Instituição a utilizar, sempre que julgar necessário,\r\n                recursos técnicos nos atendimentos, tais como sala com espelho\r\n                que permite visão unilateral, com auxílio de grupo técnico.\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                O CEAPIA compromete-se a manter sob estrito sigilo profissional\r\n                as informações obtidas nos atendimentos. Desmarcações ou\r\n                remarcações só serão aceitas quando comunicadas com até 72 horas\r\n                de antecedência da data da triagem. Caso contrário, o valor não\r\n                será reembolsado e se desejar marcar uma nova triagem será\r\n                cobrado novamente.\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                Declaro ainda estar ciente de que, o valor dos atendimentos é\r\n                reajustado anualmente, no dia 01 de julho.\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                O NÃO COMPARECIMENTO NA TRIAGEM IMPLICARÁ NA ELIMINAÇÃO DESTES\r\n                DOCUMENTOS.\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"agree\"\r\n                  value=\"agree\"\r\n                  label=\"Estou ciente e concordo com as informações deste termo.\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={6}>\r\n                Diretora de Atendimento\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                Assinatura do responsável\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2} justify=\"flex-end\">\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"form_data\"\r\n                  label=\"Data\"\r\n                  disabled\r\n                  name=\"form_data\"\r\n                  defaultValue={moment().format('DD/MM/YYYY').toString()}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.goBack()}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Salvar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default InitForm;\r\n","import moment from 'moment';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport Input from '../../../components/Input';\r\nimport CustomCheckbox from '../../../components/Checkbox';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Loader from '../../../components/Loader';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst InitForm: React.FC = () => {\r\n  const api = useAxios();\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const { formId } = useParams<{ id: string; formId: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getInitFormData() {\r\n      try {\r\n        const formResponse = await api.current?.get(`/forms/${formId}`);\r\n\r\n        setForm(formResponse?.data);\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar formulário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getInitFormData();\r\n  }, [api, formId]);\r\n\r\n  const handleSubmit = useCallback((data) => {\r\n    console.log(data);\r\n  }, []);\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              Ficha de Contato Inicial\r\n            </Typography>\r\n\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              Atendimento a Pais e/ou Responsáveis\r\n            </Typography>\r\n\r\n            <Typography\r\n              variant=\"h6\"\r\n              component=\"h6\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              (preenchida pelo paciente ou responsável)\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <FormLabel className={classes.formTitles}>\r\n              DADOS DE IDENTIFICAÇÃO\r\n            </FormLabel>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  1 - DOS INTERESSADOS PELO ATENDIMENTO:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"interested_name\"\r\n                  label=\"Nome (1)\"\r\n                  disabled\r\n                  name=\"interested_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"interested_rg\"\r\n                  label=\"RG\"\r\n                  disabled\r\n                  name=\"interested_rg\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"interested_cpf\"\r\n                  label=\"CPF\"\r\n                  disabled\r\n                  name=\"interested_cpf\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"interested_gender\"\r\n                  label=\"Gênero\"\r\n                  disabled\r\n                  name=\"interested_gender\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"interested_race\"\r\n                  label=\"Raça/cor\"\r\n                  disabled\r\n                  name=\"interested_race\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"interested_birth\"\r\n                  label=\"Data de Nascimento\"\r\n                  placeholder=\"23/02/1997\"\r\n                  disabled\r\n                  name=\"interested_birth\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"interested_age\"\r\n                  label=\"Idade\"\r\n                  disabled\r\n                  name=\"interested_age\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={5}>\r\n                <Input\r\n                  id=\"interested_birth_local\"\r\n                  label=\"Naturalidade\"\r\n                  disabled\r\n                  name=\"interested_birth_local\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={5}>\r\n                <Input\r\n                  id=\"religion\"\r\n                  label=\"Religião\"\r\n                  disabled\r\n                  name=\"religion\"\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"interested_2_name\"\r\n                  label=\"Nome (2)\"\r\n                  disabled\r\n                  name=\"interested_2_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"interested_2_rg\"\r\n                  label=\"RG\"\r\n                  disabled\r\n                  name=\"interested_2_rg\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"interested_2_cpf\"\r\n                  label=\"CPF\"\r\n                  disabled\r\n                  name=\"interested_2_cpf\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"interested_2_gender\"\r\n                  label=\"Gênero\"\r\n                  disabled\r\n                  name=\"interested_2_gender\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"interested_2_race\"\r\n                  label=\"Raça/cor\"\r\n                  disabled\r\n                  name=\"interested_2_race\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"interested_2_birth\"\r\n                  label=\"Data de Nascimento\"\r\n                  placeholder=\"23/02/1997\"\r\n                  disabled\r\n                  name=\"interested_2_birth\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"interested_2_age\"\r\n                  label=\"Idade\"\r\n                  disabled\r\n                  name=\"interested_2_age\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={5}>\r\n                <Input\r\n                  id=\"interested_2_birth_local\"\r\n                  label=\"Naturalidade\"\r\n                  disabled\r\n                  name=\"interested_2_birth_local\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={5}>\r\n                <Input\r\n                  id=\"religion_2\"\r\n                  label=\"Religião\"\r\n                  disabled\r\n                  name=\"religion_2\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  2 - DOS FILHOS:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"child_1_name\"\r\n                  label=\"Nome\"\r\n                  disabled\r\n                  name=\"child_1_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"child_1_age\"\r\n                  label=\"Idade\"\r\n                  disabled\r\n                  name=\"child_1_age\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"child_2_name\"\r\n                  label=\"Nome\"\r\n                  disabled\r\n                  name=\"child_2_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"child_2_age\"\r\n                  label=\"Idade\"\r\n                  disabled\r\n                  name=\"child_2_age\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"child_3_name\"\r\n                  label=\"Nome\"\r\n                  disabled\r\n                  name=\"child_3_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"child_3_age\"\r\n                  label=\"Idade\"\r\n                  disabled\r\n                  name=\"child_3_age\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"child_4_name\"\r\n                  label=\"Nome\"\r\n                  disabled\r\n                  name=\"child_4_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"child_4_age\"\r\n                  label=\"Idade\"\r\n                  disabled\r\n                  name=\"child_4_age\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>ENDEREÇO:</FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"address_street\"\r\n                  label=\"Logradouro\"\r\n                  disabled\r\n                  name=\"address_street\"\r\n                  placeholder=\"Rua/Av./Denominação/número/complemento\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"address_neighborhood\"\r\n                  label=\"Bairro\"\r\n                  disabled\r\n                  name=\"address_neighborhood\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"address_city\"\r\n                  label=\"Cidade\"\r\n                  disabled\r\n                  name=\"address_city\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"address_zipcode\"\r\n                  label=\"CEP\"\r\n                  disabled\r\n                  name=\"address_zipcode\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>TELEFONES:</FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"residencial_phone\"\r\n                  label=\"Residencial\"\r\n                  disabled\r\n                  name=\"residencial_phone\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"comercial_phone\"\r\n                  label=\"Comercial\"\r\n                  disabled\r\n                  name=\"comercial_phone\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"phone\" label=\"Celular\" disabled name=\"phone\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={6} />\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"note_phone\"\r\n                  label=\"Para recados\"\r\n                  disabled\r\n                  name=\"note_phone\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"note_phone_who\"\r\n                  label=\"Com quem?\"\r\n                  disabled\r\n                  name=\"note_phone_who\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input id=\"email\" label=\"E-mail\" disabled name=\"email\" />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Como soube do CEAPIA?\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"know_school\"\r\n                  value=\"know_school\"\r\n                  label=\"Escola\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={9}>\r\n                <Input\r\n                  id=\"know_school_desc\"\r\n                  label=\"Qual?\"\r\n                  disabled\r\n                  name=\"know_school_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"know_event\"\r\n                  value=\"know_event\"\r\n                  label=\"Evento realizado no CEAPIA\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={9}>\r\n                <Input\r\n                  id=\"know_event_desc\"\r\n                  label=\"Qual?\"\r\n                  disabled\r\n                  name=\"know_event_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"know_social_media\"\r\n                  value=\"know_social_media\"\r\n                  label=\"Facebook / Instagram / Site\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={9}>\r\n                <Input\r\n                  id=\"know_social_media_desc\"\r\n                  label=\"Qual?\"\r\n                  disabled\r\n                  name=\"know_social_media_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"know_treatment\"\r\n                  value=\"know_treatment\"\r\n                  label=\"Já se tratou ou teve familiar em tratamento no CEAPIA?\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={9}>\r\n                <Input\r\n                  id=\"know_treatment_desc\"\r\n                  label=\"Quem?\"\r\n                  disabled\r\n                  name=\"know_treatment_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"know_family\"\r\n                  value=\"know_family\"\r\n                  label=\"Possui familiar em avaliação ou tratamento atualmente? \"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={9}>\r\n                <Input\r\n                  id=\"know_family_desc\"\r\n                  label=\"Quem?\"\r\n                  disabled\r\n                  name=\"know_family_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"know_professional\"\r\n                  value=\"know_professional\"\r\n                  label=\"Terapeuta\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={9}>\r\n                <Input\r\n                  id=\"know_professional_desc\"\r\n                  label=\"Quem?\"\r\n                  disabled\r\n                  name=\"know_professional_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"know_indication\"\r\n                  value=\"know_indication\"\r\n                  label=\"Teve indicação de alguém?\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={9}>\r\n                <Input\r\n                  id=\"know_indication_desc\"\r\n                  label=\"Quem?\"\r\n                  disabled\r\n                  name=\"know_indication_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"know_others\"\r\n                  value=\"know_others\"\r\n                  label=\"Outros\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={9}>\r\n                <Input\r\n                  id=\"know_others_desc\"\r\n                  label=\"Outros\"\r\n                  disabled\r\n                  name=\"know_others_desc\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  MOTIVO DA PROCURA AO CEAPIA:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"Descreva resumidamente qual é e quando começou o problema que o traz ao CEAPIA\"\r\n                  disabled\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  NÍVEL SÓCIO-ECONÔMICO:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Interessado (1):\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"interested_1_job\"\r\n                  label=\"Profissão\"\r\n                  disabled\r\n                  name=\"interested_1_job\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>Instrução:</FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"interested_1_school_1\"\r\n                  value=\"interested_1_school_1\"\r\n                  label=\"3°Grau\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"interested_1_school_1_desc\"\r\n                  label=\"Curso\"\r\n                  disabled\r\n                  name=\"interested_1_school_1_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"interested_1_school_2\"\r\n                  value=\"interested_1_school_2\"\r\n                  label=\"2°Grau\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"interested_1_school_2_desc\"\r\n                  label=\" \"\r\n                  disabled\r\n                  name=\"interested_1_school_2_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"interested_1_school_3_desc\"\r\n                  value=\"interested_1_school_3_desc\"\r\n                  label=\"1°Grau\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"interested_1_school_3_desc\"\r\n                  label=\" \"\r\n                  disabled\r\n                  name=\"interested_1_school_3_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"interested_1_income\"\r\n                  label=\"Renda\"\r\n                  placeholder=\"R$\"\r\n                  disabled\r\n                  name=\"interested_1_income\"\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Interessado (2):\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"interested_2_job\"\r\n                  label=\"Profissão\"\r\n                  disabled\r\n                  name=\"interested_2_job\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>Instrução:</FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"interested_2_school_1\"\r\n                  value=\"interested_2_school_1\"\r\n                  label=\"3°Grau\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"interested_2_school_1_desc\"\r\n                  label=\"Curso\"\r\n                  disabled\r\n                  name=\"interested_2_school_1_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"interested_2_school_2\"\r\n                  value=\"interested_2_school_2\"\r\n                  label=\"2°Grau\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"interested_2_school_2_desc\"\r\n                  label=\" \"\r\n                  disabled\r\n                  name=\"interested_2_school_2_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"interested_2_school_3_desc\"\r\n                  value=\"interested_2_school_3_desc\"\r\n                  label=\"1°Grau\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"interested_2_school_3_desc\"\r\n                  label=\" \"\r\n                  disabled\r\n                  name=\"interested_2_school_3_desc\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"interested_2_income\"\r\n                  label=\"Renda\"\r\n                  placeholder=\"R$\"\r\n                  disabled\r\n                  name=\"interested_2_income\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"family_income\"\r\n                  label=\"Renda total da família\"\r\n                  placeholder=\"R$\"\r\n                  disabled\r\n                  name=\"family_income\"\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>Moradia:</FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"housing_own\"\r\n                  value=\"housing_own\"\r\n                  label=\"Própria\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"housing_rent\"\r\n                  value=\"housing_rent\"\r\n                  label=\"Alugada\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"housing_financed\"\r\n                  value=\"housing_financed\"\r\n                  label=\"Financiada\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"housing_given\"\r\n                  value=\"housing_given\"\r\n                  label=\"Cedida\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  RELAÇÃO DE TODAS AS PESSOAS QUE RESIDEM NA CASA:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              {[1, 2, 3, 4].map((idx) => (\r\n                <>\r\n                  <Grid item xs={3}>\r\n                    <Input\r\n                      id={`family_list_name_${idx}`}\r\n                      disabled\r\n                      name={`family_list_name_${idx}`}\r\n                      label=\"Nome\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={3}>\r\n                    <Input\r\n                      id={`family_list_age_${idx}`}\r\n                      disabled\r\n                      name={`family_list_age_${idx}`}\r\n                      label=\"Idade\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={3}>\r\n                    <Input\r\n                      id={`family_list_parent_${idx}`}\r\n                      disabled\r\n                      name={`family_list_parent_${idx}`}\r\n                      label=\"Parentesco\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={3}>\r\n                    <Input\r\n                      id={`family_list_job_${idx}`}\r\n                      label=\"Ocupação\"\r\n                      disabled\r\n                      name={`family_list_job_${idx}`}\r\n                    />\r\n                  </Grid>\r\n                </>\r\n              ))}\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  TERMO DE AUTORIZAÇÃO:\r\n                </FormLabel>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                Eu\r\n                <Input\r\n                  id=\"term_responsible_name\"\r\n                  label=\"Nome do responsável\"\r\n                  disabled\r\n                  name=\"term_responsible_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                responsável por\r\n                <Input\r\n                  id=\"term_responsible_for\"\r\n                  label=\"Responsável por\"\r\n                  disabled\r\n                  name=\"term_responsible_for\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <p>\r\n                  estou ciente de que o CEAPIA é uma Instituição que visa o\r\n                  ensino, o atendimento e a pesquisa na infância e na\r\n                  adolescência e autorizo que os dados referentes ao atendimento\r\n                  possam ser utilizados na Instituição para fins de pesquisa.\r\n                </p>\r\n\r\n                <p>\r\n                  Outrossim, autorizo a Instituição a utilizar, sempre que\r\n                  julgar necessário, recursos técnicos nos atendimentos, tais\r\n                  como sala com espelho que permite visão unilateral, com\r\n                  auxílio de grupo técnico.\r\n                </p>\r\n\r\n                <p>\r\n                  O CEAPIA compromete-se a manter sob estrito sigilo\r\n                  profissional as informações obtidas nos atendimentos.\r\n                </p>\r\n\r\n                <p>\r\n                  Declaro estar ciente de que para desmarcar a triagem é\r\n                  necessário avisar com 24 horas de antecedência, caso contrário\r\n                  será cobrada nova consulta de triagem.\r\n                </p>\r\n\r\n                <p>\r\n                  Triagem desmarcada com até 24 horas de antecedência terá 75%\r\n                  do valor ressarcido.\r\n                </p>\r\n\r\n                <p>\r\n                  Declaro ainda estar ciente de que, o valor dos atendimentos é\r\n                  reajustado anualmente, no dia 01 de julho.\r\n                </p>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                O NÃO COMPARECIMENTO NA TRIAGEM IMPLICARÁ NA ELIMINAÇÃO DESTES\r\n                DOCUMENTOS.\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <CustomCheckbox\r\n                  disabled\r\n                  name=\"agree\"\r\n                  value=\"agree\"\r\n                  label=\"Estou ciente e concordo com as informações deste termo.\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={6}>\r\n                Diretora de Atendimento\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                Assinatura do responsável\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2} justify=\"flex-end\">\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"form_data\"\r\n                  label=\"Data\"\r\n                  disabled\r\n                  name=\"form_data\"\r\n                  defaultValue={moment().format('DD/MM/YYYY').toString()}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.goBack()}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default InitForm;\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable jsx-a11y/no-static-element-interactions */\r\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Tooltip,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useLocation, useParams } from 'react-router';\r\nimport { isEmpty } from 'lodash';\r\nimport Input from '../../../components/Input';\r\nimport CustomCheckbox from '../../../components/Checkbox';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport Loader from '../../../components/Loader';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    marginTop: theme.spacing(2),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst AdoptionForm: React.FC = () => {\r\n  const api = useAxios();\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const { formId } = useParams<{ id: string; formId: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getInitFormData() {\r\n      try {\r\n        const formResponse = await api.current?.get(`/forms/${formId}`);\r\n\r\n        setForm(formResponse?.data);\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar formulário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getInitFormData();\r\n  }, [api, formId]);\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={() => console.log('submit')}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              FICHA DE CONTATO INICIAL - PACIENTES MINISTÉRIO PÚBLICO (MP)\r\n            </Typography>\r\n\r\n            <Typography\r\n              variant=\"h6\"\r\n              component=\"h6\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              (preenchida pelo paciente ou responsável)\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <FormLabel className={classes.formTitles}>\r\n              DADOS DE IDENTIFICAÇÃO\r\n            </FormLabel>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  1 - DO PACIENTE:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"patient_name\"\r\n                  disabled\r\n                  label=\"Nome\"\r\n                  name=\"patient_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"patient_rg\" disabled label=\"RG\" name=\"patient_rg\" />\r\n              </Grid>\r\n\r\n              {/* TODO: 'cpf-cnpj-validator' */}\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"patient_cpf\"\r\n                  disabled\r\n                  label=\"CPF\"\r\n                  name=\"patient_cpf\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"patient_age\"\r\n                  disabled\r\n                  label=\"Idade\"\r\n                  name=\"patient_age\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={5}>\r\n                <Input\r\n                  disabled\r\n                  id=\"patient_gender\"\r\n                  label=\"Gênero\"\r\n                  name=\"patient_gender\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={5}>\r\n                <Input\r\n                  disabled\r\n                  id=\"patient_birth\"\r\n                  label=\"Data de Nascimento\"\r\n                  name=\"patient_birth\"\r\n                  placeholder=\"23/02/1997\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"patient_birth_local\"\r\n                  label=\"Naturalidade\"\r\n                  name=\"patient_birth_local\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"patient_religion\"\r\n                  label=\"Religião\"\r\n                  name=\"patient_religion\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  INSTITUIÇÃO:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"address_street\"\r\n                  label=\"Logradouro\"\r\n                  name=\"address_street\"\r\n                  placeholder=\"Rua/Av./Denominação/número/complemento\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"address_neighborhood\"\r\n                  label=\"Bairro\"\r\n                  name=\"address_neighborhood\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"address_city\"\r\n                  disabled\r\n                  label=\"Cidade\"\r\n                  name=\"address_city\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"address_zipcode\"\r\n                  label=\"CEP\"\r\n                  name=\"address_zipcode\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"address_phones\"\r\n                  label=\"Telefones\"\r\n                  name=\"address_phones\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"address_responsible\"\r\n                  label=\"Responsável Técnico\"\r\n                  name=\"address_responsible\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"address_parents\"\r\n                  label=\"Pais Sociais\"\r\n                  name=\"address_parents\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"address_date\"\r\n                  label=\"Data do Abrigamento\"\r\n                  name=\"address_date\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  ESCOLARIDADE:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"school_name\"\r\n                  label=\"Nome da Escola\"\r\n                  name=\"school_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"school_address\"\r\n                  label=\"Endereço\"\r\n                  name=\"school_address\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"school_phones\"\r\n                  label=\"Telefones\"\r\n                  name=\"school_phones\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"school_year\"\r\n                  disabled\r\n                  label=\"Série\"\r\n                  name=\"school_year\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"school_period\"\r\n                  disabled\r\n                  label=\"Turno\"\r\n                  name=\"school_period\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  disabled\r\n                  id=\"school_fails\"\r\n                  label=\"Número de repetências\"\r\n                  name=\"school_fails\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"school_teacher\"\r\n                  label=\"Nome da professora\"\r\n                  name=\"school_teacher\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"school_coordinator\"\r\n                  label=\"Nome da orientadora\"\r\n                  name=\"school_coordinator\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  MOTIVO DA PROCURA AO CEAPIA:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"motive\"\r\n                  label=\"Descreva resumidamente qual é e quando começou o problema que o traz ao CEAPIA\"\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  DADOS DA FAMÍLIA BIOLÓGICA:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Nome dos pais:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"mother_name\"\r\n                  disabled\r\n                  label=\"Mãe\"\r\n                  name=\"mother_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"mother_age\"\r\n                  disabled\r\n                  label=\"Idade\"\r\n                  name=\"mother_age\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"father_name\"\r\n                  disabled\r\n                  label=\"Pai\"\r\n                  name=\"father_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"father_age\"\r\n                  disabled\r\n                  label=\"Idade\"\r\n                  name=\"father_age\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  SITUAÇÃO JURÍDICA DO PACIENTE:\r\n                </FormLabel>\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Destituído do Poder Familiar\r\n                </FormLabel>\r\n                disabled\r\n                <Input id=\"destituido\" label=\"Quando?\" name=\"destituido\" />\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Em processo de destituição\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  disabled\r\n                  id=\"destituido_in_progress\"\r\n                  label=\"Outros:\"\r\n                  name=\"destituido_in_progress\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Apadrinhamento Afetivo\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  disabled\r\n                  id=\"apadrinhamento\"\r\n                  label=\"Nome e contato:\"\r\n                  name=\"apadrinhamento\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  RELAÇÃO DE TODAS AS PESSOAS QUE RESIDEM NA INSTITUIÇÃO:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              {/* 1) */}\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_1_name\"\r\n                  label=\"Nome\"\r\n                  name=\"resident_1_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_1_age\"\r\n                  label=\"Idade\"\r\n                  name=\"resident_1_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_1_parent\"\r\n                  label=\"Parentesco\"\r\n                  name=\"resident_1_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_1_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  name=\"resident_1_ocupation\"\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              {/* 2) */}\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_2_name\"\r\n                  label=\"Nome\"\r\n                  name=\"resident_2_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_2_age\"\r\n                  label=\"Idade\"\r\n                  name=\"resident_2_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_2_parent\"\r\n                  label=\"Parentesco\"\r\n                  name=\"resident_2_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_2_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  name=\"resident_2_ocupation\"\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              {/* 3) */}\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_3_name\"\r\n                  label=\"Nome\"\r\n                  name=\"resident_3_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_3_age\"\r\n                  label=\"Idade\"\r\n                  name=\"resident_3_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_3_parent\"\r\n                  label=\"Parentesco\"\r\n                  name=\"resident_3_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_3_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  name=\"resident_3_ocupation\"\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              {/* 4) */}\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_4_name\"\r\n                  label=\"Nome\"\r\n                  name=\"resident_4_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_4_age\"\r\n                  label=\"Idade\"\r\n                  name=\"resident_4_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_4_parent\"\r\n                  label=\"Parentesco\"\r\n                  name=\"resident_4_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_4_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  name=\"resident_4_ocupation\"\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              {/* 5) */}\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_5_name\"\r\n                  label=\"Nome\"\r\n                  name=\"resident_5_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_5_age\"\r\n                  label=\"Idade\"\r\n                  name=\"resident_5_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_5_parent\"\r\n                  label=\"Parentesco\"\r\n                  name=\"resident_5_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_5_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  name=\"resident_5_ocupation\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  TERMO DE AUTORIZAÇÃO:\r\n                </FormLabel>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                Eu\r\n                <Input\r\n                  disabled\r\n                  id=\"term_responsible_name\"\r\n                  label=\"Nome do responsável\"\r\n                  name=\"term_responsible_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                estou ciente de que o CEAPIA é uma Instituição que visa o\r\n                ensino, o atendimento e a pesquisa na infância e na adolescência\r\n                e autorizo que os dados referentes ao atendimento da\r\n                criança/adolescente\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"term_responsible_for\"\r\n                  label=\"Nome da criança / adolescente\"\r\n                  name=\"term_responsible_for\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                possam vir a serem utilizados na Instituição para fins de\r\n                pesquisa.\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                O CEAPIA compromete-se a manter sob restrito sigilo profissional\r\n                as informações obtidas nos atendimentos.\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <div onClick={() => console.log('agree')}>\r\n                  <CustomCheckbox\r\n                    name=\"agree\"\r\n                    disabled\r\n                    value=\"agree\"\r\n                    label=\" Declaro que li e estou de acordo com as informações deste termo.\"\r\n                  />\r\n                </div>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={6}>\r\n                Diretora de Atendimento\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                Assinatura do responsável\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2} justify=\"flex-end\">\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  disabled\r\n                  id=\"form_data\"\r\n                  label=\"Data\"\r\n                  name=\"form_data\"\r\n                  defaultValue={moment().format('DD/MM/YYYY').toString()}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.goBack()}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default AdoptionForm;\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable jsx-a11y/no-static-element-interactions */\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport moment from 'moment';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\nimport { useHistory, useParams } from 'react-router';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  RadioGroup,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport Input from '../../../components/Input';\r\nimport CustomRadio from '../../../components/Radio';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport Loader from '../../../components/Loader';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    marginTop: theme.spacing(2),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst UpdateForm: React.FC = () => {\r\n  const api = useAxios();\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const { formId } = useParams<{ id: string; formId: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getInitFormData() {\r\n      try {\r\n        const formResponse = await api.current?.get(`/forms/${formId}`);\r\n\r\n        setForm(formResponse?.data);\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar formulário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getInitFormData();\r\n  }, [api, formId]);\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={() => console.log('submit')}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              Ficha de Atualização de Cadastro\r\n            </Typography>\r\n\r\n            <Typography\r\n              variant=\"h6\"\r\n              component=\"h6\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              (preenchida pelo paciente ou responsável referente a modificações\r\n              na ficha cadastral)\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <FormLabel className={classes.formTitles}>\r\n              DADOS DE IDENTIFICAÇÃO\r\n            </FormLabel>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  1 - DO PACIENTE:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"patient_name\"\r\n                  label=\"Nome\"\r\n                  name=\"patient_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  disabled\r\n                  id=\"patient_gender\"\r\n                  label=\"Gênero\"\r\n                  name=\"patient_gender\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  disabled\r\n                  id=\"patient_race\"\r\n                  label=\"Raça/cor\"\r\n                  name=\"patient_race\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={5}>\r\n                <Input\r\n                  disabled\r\n                  id=\"patient_birth\"\r\n                  label=\"Data de Nascimento\"\r\n                  name=\"patient_birth\"\r\n                  placeholder=\"23/02/1997\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  disabled\r\n                  id=\"patient_age\"\r\n                  label=\"Idade\"\r\n                  name=\"patient_age\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input disabled id=\"patient_rg\" label=\"RG\" name=\"patient_rg\" />\r\n              </Grid>\r\n\r\n              {/* TODO: 'cpf-cnpj-validator' */}\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  disabled\r\n                  id=\"patient_cpf\"\r\n                  label=\"CPF\"\r\n                  name=\"patient_cpf\"\r\n                />\r\n              </Grid>\r\n              {/*\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  disabled id=\"patient_certidao\"\r\n                  label=\"Certidão de Nascimento\"\r\n                  name=\"patient_certidao\"\r\n                />\r\n              </Grid> */}\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"patient_birth_local\"\r\n                  label=\"Local de Nascimento\"\r\n                  name=\"patient_birth_local\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"patient_phone\"\r\n                  label=\"Telefone\"\r\n                  name=\"patient_phone\"\r\n                  placeholder=\"(__) _______\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>ENDEREÇO:</FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"address_street\"\r\n                  label=\"Logradouro\"\r\n                  name=\"address_street\"\r\n                  placeholder=\"Rua/Av./Denominação/número/complemento\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"address_neighborhood\"\r\n                  label=\"Bairro\"\r\n                  name=\"address_neighborhood\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"address_city\"\r\n                  label=\"Cidade\"\r\n                  name=\"address_city\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"address_zipcode\"\r\n                  label=\"CEP\"\r\n                  name=\"address_zipcode\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  ESCOLARIDADE:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"school_level\"\r\n                    options={[\r\n                      {\r\n                        id: '1',\r\n                        value: 'kid_school',\r\n                        label: 'Educação Infantil',\r\n                      },\r\n                      {\r\n                        id: '2',\r\n                        value: 'fundamental_school',\r\n                        label: 'Ensino Fundamental',\r\n                      },\r\n                      {\r\n                        id: '3',\r\n                        value: 'middle_school',\r\n                        label: 'Ensino Médio',\r\n                      },\r\n                      { id: '4', value: 'school_level_other', label: 'Outro' },\r\n                    ]}\r\n                  />\r\n\r\n                  {/* <Input disabled id=\"school_level\" label=\"Outro\" name=\"school_level\" /> */}\r\n                </RadioGroup>\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  disabled\r\n                  id=\"school_year\"\r\n                  label=\"Ano\"\r\n                  name=\"school_year\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  disabled\r\n                  id=\"school_period\"\r\n                  label=\"Turno\"\r\n                  name=\"school_period\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"school_fails\"\r\n                  label=\"Número de repetências\"\r\n                  name=\"school_fails\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"school_name\"\r\n                  label=\"Nome da Escola\"\r\n                  name=\"school_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"school_type\"\r\n                    options={[\r\n                      {\r\n                        id: '1',\r\n                        value: 'city_school',\r\n                        label: 'Escola Municipal',\r\n                      },\r\n                      {\r\n                        id: '2',\r\n                        value: 'state_school',\r\n                        label: 'Escola Estadual',\r\n                      },\r\n                      {\r\n                        id: '3',\r\n                        value: 'private_school',\r\n                        label: 'Escola Privada',\r\n                      },\r\n                      { id: '4', value: 'school_level_other', label: 'Outro' },\r\n                    ]}\r\n                  />\r\n                </RadioGroup>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  2 - DOS RESPONSÁVEIS:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Responsável 1\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_1_name\"\r\n                  label=\"Nome\"\r\n                  name=\"responsible_1_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_1_rg\"\r\n                  label=\"RG\"\r\n                  name=\"responsible_1_rg\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_1_cpf\"\r\n                  label=\"CPF\"\r\n                  name=\"responsible_1_cpf\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_1_birth\"\r\n                  label=\"Data de Nascimento\"\r\n                  placeholder=\"23/02/1997\"\r\n                  name=\"responsible_1_birth\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_1_phone_1\"\r\n                  label=\"Telefones\"\r\n                  name=\"responsible_1_phone_1\"\r\n                  placeholder=\"(__) _______\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_1_phone_2\"\r\n                  label=\"Telefones\"\r\n                  name=\"responsible_1_phone_2\"\r\n                  placeholder=\"(__) _______\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_1_email\"\r\n                  label=\"E-mail\"\r\n                  name=\"responsible_1_email\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Grau de parentesco com o paciente:\r\n                </FormLabel>\r\n\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"responsible_1_parent\"\r\n                    options={[\r\n                      { id: '1', value: 'mother', label: 'Mãe' },\r\n                      {\r\n                        id: '2',\r\n                        value: 'father',\r\n                        label: 'Pai',\r\n                      },\r\n                      { id: '3', value: 'other', label: 'Outro' },\r\n                    ]}\r\n                  />\r\n                </RadioGroup>\r\n\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_1_parent_other\"\r\n                  label=\"Outro\"\r\n                  name=\"responsible_1_parent_other\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Grau de Instrução:\r\n                </FormLabel>\r\n\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"responsible_1_school_level\"\r\n                    options={[\r\n                      {\r\n                        id: '1',\r\n                        value: 'fundamental_school',\r\n                        label: 'Ensino Fundamental',\r\n                      },\r\n                      {\r\n                        id: '2',\r\n                        value: 'middle_school',\r\n                        label: 'Ensino Médio',\r\n                      },\r\n                      {\r\n                        id: '3',\r\n                        value: 'superior_school',\r\n                        label: 'Ensino Superior',\r\n                      },\r\n                      { id: '4', value: 'other', label: 'Outro' },\r\n                    ]}\r\n                  />\r\n                </RadioGroup>\r\n\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_1_school_level_other\"\r\n                  label=\"Outros\"\r\n                  name=\"responsible_1_school_level_other\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_1_profession\"\r\n                  label=\"Profissão\"\r\n                  name=\"responsible_1_profession\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_1_income\"\r\n                  label=\"Renda (R$)\"\r\n                  name=\"responsible_1_income\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Responsável 2\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_2_name\"\r\n                  label=\"Nome\"\r\n                  name=\"responsible_2_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_2_rg\"\r\n                  label=\"RG\"\r\n                  name=\"responsible_2_rg\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_2_cpf\"\r\n                  label=\"CPF\"\r\n                  name=\"responsible_2_cpf\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_2_birth\"\r\n                  label=\"Data de Nascimento\"\r\n                  placeholder=\"23/02/1997\"\r\n                  name=\"responsible_2_birth\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_2_phone_2\"\r\n                  label=\"Telefones\"\r\n                  name=\"responsible_2_phone_2\"\r\n                  placeholder=\"(__) _______\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_2_phone_2\"\r\n                  label=\"Telefones\"\r\n                  name=\"responsible_2_phone_2\"\r\n                  placeholder=\"(__) _______\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_2_email\"\r\n                  label=\"E-mail\"\r\n                  name=\"responsible_2_email\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Grau de parentesco com o paciente:\r\n                </FormLabel>\r\n\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"responsible_2_parent\"\r\n                    options={[\r\n                      { id: '1', value: 'mother', label: 'Mãe' },\r\n                      {\r\n                        id: '2',\r\n                        value: 'father',\r\n                        label: 'Pai',\r\n                      },\r\n                      { id: '3', value: 'other', label: 'Outro' },\r\n                    ]}\r\n                  />\r\n                </RadioGroup>\r\n\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_2_parent_other\"\r\n                  label=\"Outro\"\r\n                  name=\"responsible_2_parent_other\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Grau de Instrução:\r\n                </FormLabel>\r\n\r\n                <RadioGroup row>\r\n                  <CustomRadio\r\n                    disabled\r\n                    name=\"responsible_2_school_level\"\r\n                    options={[\r\n                      {\r\n                        id: '1',\r\n                        value: 'fundamental_school',\r\n                        label: 'Ensino Fundamental',\r\n                      },\r\n                      {\r\n                        id: '2',\r\n                        value: 'middle_school',\r\n                        label: 'Ensino Médio',\r\n                      },\r\n                      {\r\n                        id: '3',\r\n                        value: 'superior_school',\r\n                        label: 'Ensino Superior',\r\n                      },\r\n                      { id: '4', value: 'other', label: 'Outro' },\r\n                    ]}\r\n                  />\r\n                </RadioGroup>\r\n\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_2_school_level_other\"\r\n                  label=\"Outro\"\r\n                  name=\"responsible_2_school_level_other\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_2_profession\"\r\n                  label=\"Profissão\"\r\n                  name=\"responsible_2_profession\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"responsible_2_income\"\r\n                  label=\"Renda (R$)\"\r\n                  name=\"responsible_2_income\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Responsável pelo custeio do tratamento:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"payer_same\"\r\n                  label=\"Mesmos acima\"\r\n                  name=\"payer_same\"\r\n                />\r\n                <Input\r\n                  disabled\r\n                  id=\"payer_other\"\r\n                  label=\"Outro\"\r\n                  name=\"payer_other\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  disabled\r\n                  id=\"payer_parent\"\r\n                  label=\"Grau de parentesco com o paciente (se houver)\"\r\n                  name=\"payer_parent\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"payer_phone\"\r\n                  label=\"Telefone\"\r\n                  name=\"payer_phone\"\r\n                  placeholder=\"(__) _______\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"payer_income\"\r\n                  label=\"Renda (R$)\"\r\n                  name=\"payer_income\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  MOTIVO DA PROCURA AO CEAPIA:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"Descreva brevemente quais são e quando começaram as questões que os trazem ao CEAPIA\"\r\n                  disabled\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  RELAÇÃO DE TODAS AS PESSOAS QUE RESIDEM NA CASA COM O\r\n                  PACIENTE:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              {/* 1) */}\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_1_name\"\r\n                  label=\"Nome\"\r\n                  name=\"resident_1_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_1_age\"\r\n                  label=\"Idade\"\r\n                  name=\"resident_1_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_1_parent\"\r\n                  label=\"Parentesco\"\r\n                  name=\"resident_1_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_1_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  name=\"resident_1_ocupation\"\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              {/* 2) */}\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_2_name\"\r\n                  label=\"Nome\"\r\n                  name=\"resident_2_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_2_age\"\r\n                  label=\"Idade\"\r\n                  name=\"resident_2_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_2_parent\"\r\n                  label=\"Parentesco\"\r\n                  name=\"resident_2_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_2_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  name=\"resident_2_ocupation\"\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              {/* 3) */}\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_3_name\"\r\n                  label=\"Nome\"\r\n                  name=\"resident_3_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_3_age\"\r\n                  label=\"Idade\"\r\n                  name=\"resident_3_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_3_parent\"\r\n                  label=\"Parentesco\"\r\n                  name=\"resident_3_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_3_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  name=\"resident_3_ocupation\"\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              {/* 4) */}\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_4_name\"\r\n                  label=\"Nome\"\r\n                  name=\"resident_4_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_4_age\"\r\n                  label=\"Idade\"\r\n                  name=\"resident_4_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_4_parent\"\r\n                  label=\"Parentesco\"\r\n                  name=\"resident_4_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_4_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  name=\"resident_4_ocupation\"\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              {/* 5) */}\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_5_name\"\r\n                  label=\"Nome\"\r\n                  name=\"resident_5_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_5_age\"\r\n                  label=\"Idade\"\r\n                  name=\"resident_5_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_5_parent\"\r\n                  label=\"Parentesco\"\r\n                  name=\"resident_5_parent\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  disabled\r\n                  id=\"resident_5_ocupation\"\r\n                  label=\"Ocupação\"\r\n                  name=\"resident_5_ocupation\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={6}>\r\n                Diretora de Atendimento\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                Assinatura do responsável\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2} justify=\"flex-end\">\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  disabled\r\n                  id=\"form_data\"\r\n                  label=\"Data\"\r\n                  name=\"form_data\"\r\n                  defaultValue={moment().format('DD/MM/YYYY').toString()}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.goBack()}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default UpdateForm;\r\n","import React, { useCallback, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport {\r\n  Button,\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  DialogTitle,\r\n  Divider,\r\n  FormLabel,\r\n  Grid,\r\n  IconButton,\r\n  Theme,\r\n  Tooltip,\r\n  Typography,\r\n  makeStyles,\r\n} from '@material-ui/core';\r\nimport { Cancel, Create } from '@material-ui/icons';\r\nimport { red } from '@material-ui/core/colors';\r\n\r\nimport Input from '../Input';\r\nimport { useAxios } from '../../utils/hooks';\r\nimport Snackbar, { AlertComponentProps } from '../Snackbar';\r\nimport { SignatureForm } from '../../models/signature-form';\r\nimport { Signature as SignatureModel } from '../../models/signature';\r\nimport getValidationErrors from '../../utils/getValidationErrors';\r\n\r\ninterface SignatureProps {\r\n  formAnswers: { signatures: SignatureForm[] };\r\n  onSignature: (signatures: SignatureForm[]) => void;\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  container: {\r\n    display: 'flex',\r\n  },\r\n  signature: {\r\n    width: '50%',\r\n    padding: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst Signature: React.FC<SignatureProps> = ({ formAnswers, onSignature }) => {\r\n  const classes = useStyles();\r\n  const api = useAxios();\r\n  const [signatures, setSignatures] = useState(formAnswers.signatures || []);\r\n  const [open, setOpen] = useState(false);\r\n  const [loading, setLoading] = useState(false);\r\n  const [password, setPassword] = useState<string>('');\r\n  const [passwordError, setPasswordError] = useState<string>('');\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleSubmitSignature = useCallback(async () => {\r\n    try {\r\n      resetAlert();\r\n\r\n      const schema = Yup.object().shape({\r\n        password: Yup.string()\r\n          .required('Informe uma senha válida')\r\n          .min(4, 'Senha deve no mínimo conter 4 dígitos')\r\n          .max(4, 'Senha deve no máximo conter 4 dígitos'),\r\n      });\r\n\r\n      await schema.validate({ password }, { abortEarly: false });\r\n\r\n      const passwordToSend = Number(password);\r\n\r\n      await api.current?.post(`/users/signature/validate`, {\r\n        password: passwordToSend,\r\n      });\r\n\r\n      const userSignature = await api.current?.get<SignatureModel>(\r\n        `/users/signature`,\r\n      );\r\n\r\n      if (userSignature && userSignature.data) {\r\n        const signaturesToSave: SignatureForm[] = [\r\n          ...signatures,\r\n          {\r\n            name: userSignature?.data.name || '--',\r\n            number: userSignature?.data.number || '--',\r\n            url: userSignature?.data.file.path || '--',\r\n            register: userSignature?.data.register || '--',\r\n          },\r\n        ];\r\n\r\n        setSignatures(signaturesToSave);\r\n        onSignature(signaturesToSave);\r\n      }\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Assinatura aplicada com sucesso.',\r\n      });\r\n\r\n      handleClose();\r\n    } catch (error: any) {\r\n      if (error instanceof Yup.ValidationError) {\r\n        const errors = getValidationErrors(error);\r\n        setPasswordError(errors.password);\r\n      } else if (error?.response?.status === 401) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'warning',\r\n          message: error.response.data.message,\r\n        });\r\n      } else {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao aplicar assinatura.',\r\n        });\r\n      }\r\n    }\r\n  }, [api, password, signatures, onSignature]);\r\n\r\n  const handleCancelSignature = useCallback(\r\n    async (number: string) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n\r\n        const userSignature = await api.current?.get<SignatureModel>(\r\n          `/users/signature`,\r\n        );\r\n\r\n        if (userSignature?.data?.number !== number) {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Remova somente a sua assinatura.',\r\n          });\r\n\r\n          return;\r\n        }\r\n\r\n        const currentSignatures = signatures.filter(\r\n          (signature) => signature.number !== number,\r\n        );\r\n\r\n        setSignatures(currentSignatures);\r\n        onSignature(currentSignatures);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Assinatura removida com sucesso.',\r\n        });\r\n\r\n        handleClose();\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'warning',\r\n          message: 'Erro ao remover assinatura.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [signatures, api, onSignature],\r\n  );\r\n\r\n  const renderDialog = (\r\n    <Dialog\r\n      open={open}\r\n      onClose={handleClose}\r\n      aria-labelledby=\"form-dialog-title\"\r\n      fullWidth\r\n    >\r\n      <DialogTitle id=\"form-dialog-title\">Assinar Ficha</DialogTitle>\r\n\r\n      <Grid item xs={12}>\r\n        <Divider />\r\n      </Grid>\r\n\r\n      <DialogContent>\r\n        <Grid container spacing={2}>\r\n          <Grid item xs={12} />\r\n\r\n          <Grid item xs={12}>\r\n            <FormLabel className={classes.formTitles}>\r\n              Digite sua senha de 4 dígitos\r\n            </FormLabel>\r\n          </Grid>\r\n          <Grid item xs={12}>\r\n            <span>*caso não tenha, cadastre no seu perfil</span>\r\n          </Grid>\r\n          <Grid item xs={12}>\r\n            <Input\r\n              id=\"password\"\r\n              type=\"password\"\r\n              label=\"Senha\"\r\n              manualError={passwordError}\r\n              name=\"password\"\r\n              onChange={(e) => setPassword(e.target.value)}\r\n            />\r\n          </Grid>\r\n        </Grid>\r\n      </DialogContent>\r\n\r\n      <DialogActions>\r\n        <Button onClick={handleClose}>Cancelar</Button>\r\n        <Button\r\n          color=\"primary\"\r\n          variant=\"contained\"\r\n          onClick={() => handleSubmitSignature()}\r\n        >\r\n          {loading ? 'Enviando...' : 'Enviar'}\r\n        </Button>\r\n      </DialogActions>\r\n    </Dialog>\r\n  );\r\n\r\n  return (\r\n    <>\r\n      {renderDialog}\r\n\r\n      <Typography align=\"right\">\r\n        <Button\r\n          startIcon={<Create />}\r\n          variant=\"outlined\"\r\n          color=\"primary\"\r\n          onClick={() => setOpen(true)}\r\n        >\r\n          Assinar\r\n        </Button>\r\n      </Typography>\r\n\r\n      <div className={classes.container}>\r\n        {signatures.map((signature) => (\r\n          <div className={classes.signature}>\r\n            <Typography variant=\"h3\" component=\"h3\">\r\n              <img\r\n                src={`${process.env.REACT_APP_PRONTUARIO_API}/${signature.url}`}\r\n                alt=\"signature\"\r\n                style={{\r\n                  maxWidth: '400px',\r\n                  maxHeight: '200px',\r\n                  background: 'transparent',\r\n                }}\r\n              />\r\n\r\n              <Tooltip title=\"Remover assinatura\">\r\n                <IconButton\r\n                  onClick={() => handleCancelSignature(signature.number)}\r\n                >\r\n                  <Cancel fontSize=\"large\" style={{ color: red[400] }} />\r\n                </IconButton>\r\n              </Tooltip>\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n\r\n            <Typography variant=\"subtitle1\" component=\"h3\" align=\"center\">\r\n              {signature.name}\r\n            </Typography>\r\n\r\n            <Typography variant=\"subtitle2\" component=\"h3\" align=\"center\">\r\n              {`${signature.register}: ${signature.number}`}\r\n            </Typography>\r\n          </div>\r\n        ))}\r\n      </div>\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default Signature;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst ReviewForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n\r\n        const formRequest = {\r\n          type: 'review',\r\n          title: 'Ficha de Avaliação',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar avaliação.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n          initialData={form?.answers}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              FICHA DE AVALIAÇÃO\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={2}>\r\n              <Input id=\"age\" label=\"Idade\" name=\"age\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={3}>\r\n              <Input id=\"gender\" label=\"Sexo\" name=\"gender\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={1} />\r\n\r\n            <Grid item xs={2}>\r\n              <FormLabel className={classes.formTitles}>\r\n                Período de avaliação:\r\n              </FormLabel>\r\n            </Grid>\r\n\r\n            <Grid item xs={2}>\r\n              <Input id=\"period_start\" label=\"De\" name=\"period_start\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={2}>\r\n              <Input id=\"period_end\" label=\"a\" name=\"period_end\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input id=\"professional\" label=\"Terapeuta\" name=\"professional\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"supervisor\"\r\n                label=\"Supervisor ou Preceptor\"\r\n                name=\"supervisor\"\r\n              />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  1 - ENCAMINHAMENTO\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"forward\"\r\n                  label=\"Encaminhamento\"\r\n                  name=\"forward\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  2 - RESUMO DA HISTÓRIA PREGRESSA\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"summary\"\r\n                  label=\"Resumo da história pregressa\"\r\n                  name=\"summary\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  3 - IMPRESSÃO INICIAL DO PACIENTE\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"initial_impression\"\r\n                  label=\"Impressão inicial do paciente\"\r\n                  name=\"initial_impression\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  4 - IMPRESSÃO INICIAL DOS PAIS\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"initial_parent_impression\"\r\n                  label=\"Impressão inicial dos pais\"\r\n                  name=\"initial_parent_impression\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  5 - LISTA DE SINTOMAS\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"symptoms\"\r\n                  label=\"Lista de sintomas\"\r\n                  name=\"symptoms\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  6 - HISTÓRIA DE INTERVENÇÕES PRÉVIAS EM SAÚDE MENTAL\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"mental_health_history\"\r\n                  label=\"(Hospitalizações, Psicoterapia, Avaliações Psiquiátricas e Psicológicas)\"\r\n                  name=\"mental_health_history\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  7 - HISTÓRIA DE ESTRESSES E CRISES RELEVANTES PARA CRIANÇA E\r\n                  FAMÍLIA\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"stress_history\"\r\n                  label=\"(Morte, doenças, separações, problemas econômicos, doença mental)\"\r\n                  name=\"stress_history\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  8 - RECOMENDAÇÃO PARA AVALIAÇÕES ADICIONAIS\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"extra_evaluation\"\r\n                  label=\"(testagem psicológica, psiquiatra, neurologista, etc.)\"\r\n                  name=\"extra_evaluation\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  9 - HIPÓTESE DIAGNÓSTICA INICIAL\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"cid\"\r\n                  label=\"(CID 10)\"\r\n                  name=\"cid\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  10 - PLANO DE TRATAMENTO INICIAL\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"initial_plan\"\r\n                  label=\"(Incluindo tipo de tratamento para criança e pais, outras intervenções e encaminhamento)\"\r\n                  name=\"initial_plan\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2} justify=\"flex-end\">\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"form_data\"\r\n                  label=\"Data\"\r\n                  name=\"form_data\"\r\n                  defaultValue={moment().format('DD/MM/YYYY').toString()}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default ReviewForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport Datepicker from '../../../components/Datepicker';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst SocialServiceForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [date, setDate] = useState(new Date());\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data)\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n        const formRequest = {\r\n          type: 'socialService',\r\n          title: 'Encaminhamento Serviço Social',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar encaminhamento.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, date, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              FICHA DE ENCAMINHAMENTO PARA O SERVIÇO SOCIAL\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={12}>\r\n              <Input id=\"author\" label=\"Encaminhado por\" name=\"author\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={date}\r\n                  onChange={(d) => setDate(d as Date)}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input id=\"phone\" label=\"Telefone para contato\" name=\"phone\" />\r\n            </Grid>\r\n\r\n            <FormControl fullWidth className={classes.formControl}>\r\n              <Divider className={classes.divider} />\r\n            </FormControl>\r\n\r\n            <Grid item xs={12}>\r\n              <FormLabel className={classes.formTitles}>\r\n                Dados do Paciente:\r\n              </FormLabel>\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input id=\"patient_name\" label=\"Nome\" name=\"patient_name\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"patient_birth\"\r\n                label=\"Data de Nascimento\"\r\n                name=\"patient_birth\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input id=\"patient_age\" label=\"Idade\" name=\"patient_age\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"patient_father_name\"\r\n                label=\"Nome do pai\"\r\n                name=\"patient_father_name\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input\r\n                id=\"patient_father_age\"\r\n                label=\"Idade\"\r\n                name=\"patient_father_age\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input\r\n                id=\"patient_father_profession\"\r\n                label=\"Profissão\"\r\n                name=\"patient_father_profession\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input\r\n                id=\"patient_father_school\"\r\n                label=\"Escolaridade\"\r\n                name=\"patient_father_school\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"patient_mother_name\"\r\n                label=\"Nome da Mãe\"\r\n                name=\"patient_mother_name\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input\r\n                id=\"patient_mother_age\"\r\n                label=\"Idade\"\r\n                name=\"patient_mother_age\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input\r\n                id=\"patient_mother_profession\"\r\n                label=\"Profissão\"\r\n                name=\"patient_mother_profession\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input\r\n                id=\"patient_mother_school\"\r\n                label=\"Escolaridade\"\r\n                name=\"patient_mother_school\"\r\n              />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo do encaminhamento para o Serviço Social\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"forward\"\r\n                  label=\"Encaminhamento\"\r\n                  name=\"forward\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Avaliações e ou acompanhamentos já realizados ou em andamento\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"professional\"\r\n                  label=\"Psiquiátrica (médico e telefone)\"\r\n                  name=\"professional\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"neural_doctor\"\r\n                  label=\"Neurológica (médico e telefone)\"\r\n                  name=\"neural_doctor\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"others\"\r\n                  label=\"Outras (médico e telefone)\"\r\n                  name=\"others\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"observations\"\r\n                  label=\"Outras observações relevantes\"\r\n                  name=\"observations\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"questions\"\r\n                  label=\"Questões a serem esclarecidas com o Serviço Social\"\r\n                  name=\"questions\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default SocialServiceForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst ParentsForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [birth, setBirth] = useState(new Date());\r\n  const [date, setDate] = useState(new Date());\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n            setBirth(\r\n              formResponse?.data.answers.birth\r\n                ? moment(formResponse?.data.answers.birth).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.birth = moment(birth).format('YYYY-MM-DD');\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'parents',\r\n          title: 'Encaminhamento Atendimento a Pais',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar encaminhamento.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, birth, date, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              FICHA DE ENCAMINHAMENTO ATENDIMENTO A PAIS\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"patient_name\"\r\n                label=\"Nome do Paciente\"\r\n                name=\"patient_name\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data de Nascimento\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={birth}\r\n                  onChange={(d) => setBirth(d as Date)}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input id=\"age\" label=\"Idade\" name=\"age\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={4} />\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"parent_names\"\r\n                label=\"Nome dos pais\"\r\n                name=\"parent_names\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input id=\"phones\" label=\"Telefones de contato\" name=\"phones\" />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo do encaminhamento da criança/adolescente\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"Motivo\"\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo do encaminhamento para atendimento colateral\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"colateral\"\r\n                  label=\"Motivo\"\r\n                  name=\"colateral\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"professional\"\r\n                  label=\"Terapeuta da criança/adolescente\"\r\n                  name=\"professional\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input id=\"phone\" label=\"Telefone de contato\" name=\"phone\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"schedule\"\r\n                  label=\"Disponibilidade de horário dos pais para atendimento colateral\"\r\n                  name=\"schedule\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item xs={12}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data do encaminhamento\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date}\r\n                    onChange={(d) => setDate(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default ParentsForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst PsychopedagogyForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [birth, setBirth] = useState(new Date());\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setBirth(\r\n              formResponse?.data.answers.birth\r\n                ? moment(formResponse?.data.answers.birth).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.birth = moment(birth).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'psychopedagogy',\r\n          title: 'Encaminhamento para Psicopedagogia',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar encaminhamento.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, birth, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers || { record: record?.number }}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              FICHA DE ENCAMINHAMENTO PARA PSICOPEDAGOGIA\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={12}>\r\n              <FormLabel className={classes.formTitles}>\r\n                DADOS DE IDENTIFICAÇÃO\r\n              </FormLabel>\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input id=\"name\" label=\"Nome\" name=\"name\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input id=\"record\" label=\"Prontuário\" name=\"record\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input id=\"age\" label=\"Idade\" name=\"age\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data de Nascimento\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={birth}\r\n                  onChange={(d) => setBirth(d as Date)}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input id=\"father_name\" label=\"Nome do pai\" name=\"father_name\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input id=\"mother_name\" label=\"Nome da mãe\" name=\"mother_name\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <FormLabel className={classes.formTitles}>\r\n                Telefones para contato\r\n              </FormLabel>\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"mother_phone\"\r\n                label=\"Telefone mãe\"\r\n                name=\"mother_phone\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"father_phone\"\r\n                label=\"Telefone mãe\"\r\n                name=\"father_phone\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input id=\"school\" label=\"Escolaridade\" name=\"school\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"school_name\"\r\n                label=\"Nome da escola\"\r\n                name=\"school_name\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input id=\"school_period\" label=\"Turno\" name=\"school_period\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input id=\"school_grade\" label=\"Série\" name=\"school_grade\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"motive\"\r\n                isMultiline\r\n                rows={5}\r\n                label=\"Motivo do encaminhamento\"\r\n                name=\"motive\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"responsible\"\r\n                label=\"Nome terapeuta responsável\"\r\n                name=\"responsible\"\r\n              />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default PsychopedagogyForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst DiscountForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [date, setDate] = useState(new Date());\r\n  const [authDate, setAuthDate] = useState<Date | null>(null);\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n\r\n            setAuthDate(\r\n              formResponse?.data.answers.authDate\r\n                ? moment(formResponse?.data.answers.authDate).toDate()\r\n                : null,\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n        if (authDate) data.authDate = moment(authDate).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'discount',\r\n          title: 'Pedido para Redução do Valor da Consulta',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error: any) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else if (error.response && error.response.data) {\r\n          switch (error.response.data.message) {\r\n            case 'Form already sent':\r\n              setAlert({\r\n                isActive: true,\r\n                type: 'warning',\r\n                message: 'Formulário em análise, solicite a revisão.',\r\n              });\r\n              break;\r\n            default:\r\n              setAlert({\r\n                isActive: true,\r\n                type: 'error',\r\n                message: 'Erro ao enviar pedido.',\r\n              });\r\n              break;\r\n          }\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar pedido.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, date, authDate, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers || { record: record?.number }}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              PEDIDO PARA REDUÇÃO DO VALOR DA CONSULTA DE PACIENTE\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={12}>\r\n              <Input id=\"professional\" label=\"Terapeuta\" name=\"professional\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input id=\"patient\" label=\"Paciente\" name=\"patient\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"hasParent\"\r\n                label=\"Possui algum familiar(es) em atendimento(s) no CEAPIA?\"\r\n                name=\"hasParent\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data do Pedido\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={date}\r\n                  onChange={(d) => setDate(d as Date)}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"current_amount\"\r\n                label=\"Valor da Consulta Atual\"\r\n                name=\"current_amount\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"future_amount\"\r\n                label=\"Valor Sugerido\"\r\n                name=\"future_amount\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"motive\"\r\n                isMultiline\r\n                rows={5}\r\n                label=\"Motivo para Redução\"\r\n                name=\"motive\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"responsible\"\r\n                label=\"Terapeuta Responsável\"\r\n                name=\"responsible\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"supervisor\"\r\n                label=\"Supervisor/Preceptor/Coord. de Setor\"\r\n                name=\"supervisor\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"director\"\r\n                label=\"Diretora/codiretora de Atendimento\"\r\n                name=\"director\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data da Autorização\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={authDate}\r\n                  onChange={(d) => setAuthDate(d as Date)}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.goBack()}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default DiscountForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst DiagnosisForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [date, setDate] = useState(new Date());\r\n  const [birth, setBirth] = useState(new Date());\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n\r\n            setBirth(\r\n              formResponse?.data.answers.birth\r\n                ? moment(formResponse?.data.answers.birth).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n        data.birth = moment(birth).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'diagnosis',\r\n          title: 'Psicodiagnóstico',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar psicodiagnóstico.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, date, birth, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers || { record: record?.number }}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              SETOR DE PSICODIAGNÓSTICO - LABORATÓRIO DE PSICODIAGNÓSTICO\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"professional\"\r\n                  label=\"Encaminhada por\"\r\n                  name=\"professional\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date}\r\n                    onChange={(d) => setDate(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"phone\" label=\"Telefone para contato\" name=\"phone\" />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Dados do Paciente\r\n                </FormLabel>\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                <Input id=\"patient_name\" label=\"Nome\" name=\"patient_name\" />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data de Nascimento\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={birth}\r\n                    onChange={(d) => setBirth(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input id=\"patient_age\" label=\"Idade\" name=\"patient_age\" />\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"patient_school_name\"\r\n                  label=\"Node da Escola\"\r\n                  name=\"patient_school_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"patient_school_period\"\r\n                  label=\"Turno\"\r\n                  name=\"patient_school_period\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"patient_school_level\"\r\n                  label=\"Escolaridade\"\r\n                  name=\"patient_school_level\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"patient_school_failure\"\r\n                  label=\"Repetência (em que ano e séria)\"\r\n                  name=\"patient_school_failure\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"patient_father_name\"\r\n                  label=\"Nome do Pai\"\r\n                  name=\"patient_father_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"patient_father_age\"\r\n                  label=\"Idade\"\r\n                  name=\"patient_father_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"patient_father_profession\"\r\n                  label=\"Profissão\"\r\n                  name=\"patient_father_profession\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"patient_father_school_level\"\r\n                  label=\"Escolaridade\"\r\n                  name=\"patient_father_school_level\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"patient_mother_name\"\r\n                  label=\"Nome do Mãe\"\r\n                  name=\"patient_mother_name\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"patient_mother_age\"\r\n                  label=\"Idade\"\r\n                  name=\"patient_mother_age\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"patient_mother_profession\"\r\n                  label=\"Profissão\"\r\n                  name=\"patient_mother_profession\"\r\n                />\r\n              </Grid>\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"patient_mother_school_level\"\r\n                  label=\"Escolaridade\"\r\n                  name=\"patient_mother_school_level\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"contact_phone\"\r\n                  label=\"Telefone e hora para contato\"\r\n                  name=\"contact_phone\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo do encaminhamento para o tratamento: Desde quando:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"Motivo\"\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Avaliações e ou acompanhamentos já realizados ou em andamento\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"doctor\"\r\n                  label=\"Psiquiátrica (médico e telefone)\"\r\n                  name=\"doctor\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"neural_doctor\"\r\n                  label=\"Neurológica (médico e telefone)\"\r\n                  name=\"neural_doctor\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"others\"\r\n                  label=\"Outras (médico e telefone)\"\r\n                  name=\"others\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"observations\"\r\n                  label=\"Outras observações relevantes\"\r\n                  name=\"observations\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"questions\"\r\n                  label=\"Questões a serem esclarecidas com o psicodiagnóstico\"\r\n                  name=\"questions\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default DiagnosisForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport CustomCheckbox from '../../../components/Checkbox';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst PsychiatricForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [date, setDate] = useState(new Date());\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'psychiatric',\r\n          title: 'Avaliação Psiquiátrica',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar avaliação.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, date, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers || { record: record?.number }}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              AVALIAÇÃO PSIQUIÁTRICA\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={2}>\r\n                <Input id=\"record\" label=\"Prontuário\" name=\"record\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={10}>\r\n                <Input\r\n                  id=\"professional\"\r\n                  label=\"Encaminhada por\"\r\n                  name=\"professional\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date}\r\n                    onChange={(d) => setDate(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"phone\" label=\"Telefone para contato\" name=\"phone\" />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Dados do Paciente\r\n                </FormLabel>\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                <Input id=\"patient_name\" label=\"Nome\" name=\"patient_name\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"patient_age\" label=\"Idade\" name=\"patient_age\" />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo do encaminhamento para o CEAPIA\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"Motivo\"\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Hipóteses Diagnóstica\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"diagnosis\"\r\n                  label=\"Hipóteses\"\r\n                  name=\"diagnosis\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Questões a serem esclarecidas na avaliação psiquiátrica\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"questions\"\r\n                  label=\"Questões\"\r\n                  name=\"questions\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Avaliações e ou acompanhamentos já realizados ou em andamento\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <CustomCheckbox\r\n                  name=\"psychodiagnosis\"\r\n                  value=\"psychodiagnosis\"\r\n                  label=\"Psicodiagnóstico\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <CustomCheckbox\r\n                  name=\"psychiatric\"\r\n                  value=\"psychiatric\"\r\n                  label=\"Psiquiátrica\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <CustomCheckbox\r\n                  name=\"neural\"\r\n                  value=\"neural\"\r\n                  label=\"Neurológica\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <CustomCheckbox name=\"others\" value=\"others\" label=\"Outras\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"observations\"\r\n                  label=\"Outras observações relevantes\"\r\n                  name=\"observations\"\r\n                  isMultiline\r\n                  rows={15}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default PsychiatricForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst QuarterForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [reviewDate, setReviewDate] = useState(new Date());\r\n  const [treatmentInit, setTreatmentInit] = useState(new Date());\r\n  const [reviewAt, setReviewAt] = useState(new Date());\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setReviewDate(\r\n              formResponse?.data.answers.reviewDate\r\n                ? moment(formResponse?.data.answers.reviewDate).toDate()\r\n                : new Date(),\r\n            );\r\n\r\n            setTreatmentInit(\r\n              formResponse?.data.answers.treatmentInit\r\n                ? moment(formResponse?.data.answers.treatmentInit).toDate()\r\n                : new Date(),\r\n            );\r\n\r\n            setReviewAt(\r\n              formResponse?.data.answers.reviewAt\r\n                ? moment(formResponse?.data.answers.reviewAt).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.reviewDate = moment(reviewDate).format('YYYY-MM-DD');\r\n        data.treatmentInit = moment(treatmentInit).format('YYYY-MM-DD');\r\n        data.reviewAt = moment(reviewAt).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'quarterplan',\r\n          title: 'Revisão Semestral Plano de Tratamento',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar revisão.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [\r\n      api,\r\n      record,\r\n      history,\r\n      formId,\r\n      reviewAt,\r\n      reviewDate,\r\n      treatmentInit,\r\n      id,\r\n      signatures,\r\n    ],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers || { record: record?.number }}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              REVISÃO SEMESTRAL DO PLANO DE TRATAMENTO\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={4}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data da Revisão\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={reviewDate}\r\n                    onChange={(d) => setReviewDate(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data do Início do Tratamento\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={treatmentInit}\r\n                    onChange={(d) => setTreatmentInit(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input id=\"record\" label=\"Prontuário\" name=\"record\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={2}>\r\n                <Input id=\"age\" label=\"Idade\" name=\"age\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={5}>\r\n                <Input\r\n                  id=\"professional\"\r\n                  label=\"Terapeuta\"\r\n                  name=\"professional\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={5}>\r\n                <Input\r\n                  id=\"supervisor\"\r\n                  label=\"Supervisor ou Preceptor\"\r\n                  name=\"supervisor\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"current_diagnosis\"\r\n                  label=\"Impressão Diagnóstica Atual\"\r\n                  name=\"current_diagnosis\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"model\"\r\n                  label=\"Modalidade de Tratamento da criança\"\r\n                  name=\"model\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input id=\"frequency\" label=\"Frequência\" name=\"frequency\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"parent_model\"\r\n                  label=\"Modalidade de Atendimento a pais \"\r\n                  name=\"parent_model\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"parent_frequency\"\r\n                  label=\"Frequência\"\r\n                  name=\"parent_frequency\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"status\"\r\n                  isMultiline\r\n                  rows={5}\r\n                  label=\"Status do Paciente (Progresso quanto aos objetivos do plano de tratamento, regressão, sintomas, mudanças situacionais, etc.)\"\r\n                  name=\"status\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"review\"\r\n                  isMultiline\r\n                  rows={5}\r\n                  label=\"Avaliação do Curso do Tratamento (Impedimentos, natureza da relação terapêutica, razões para melhora, etc.)\"\r\n                  name=\"review\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"changes\"\r\n                  isMultiline\r\n                  rows={5}\r\n                  label=\"Alterações do Plano de Tratamento e Razões Para as Mesmas (Novos objetivos, mudança na\r\n                    modalidade de atendimento, freqüência, início do processo de alta, etc.)\"\r\n                  name=\"changes\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item xs={10} />\r\n              <Grid item xs={2} justify=\"flex-end\">\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Revisado em\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={reviewAt}\r\n                    onChange={(d) => setReviewAt(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default QuarterForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport { SelectProps } from '../../Records/List/dto';\r\nimport { User } from '../../../models/user';\r\nimport Select from '../../../components/Select';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst ForwardForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [users, setUsers] = useState<SelectProps[]>([]);\r\n  const [date, setDate] = useState(new Date());\r\n  const [authDate, setAuthDate] = useState<Date | null>(null);\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n\r\n        if (recordResponse?.data) {\r\n          setRecord(recordResponse.data);\r\n        }\r\n\r\n        const usersResponse = await api.current?.get('/users');\r\n\r\n        if (usersResponse?.data) {\r\n          setUsers(\r\n            usersResponse.data.map((user: User) => ({\r\n              value: user.id,\r\n              label: `${user.firstName} ${user.lastName}`,\r\n            })),\r\n          );\r\n        }\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n\r\n            setAuthDate(\r\n              formResponse?.data.answers.authDate\r\n                ? moment(formResponse?.data.answers.authDate).toDate()\r\n                : null,\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.professional =\r\n          users.find((u) => u.value === data.professional_id)?.label || '';\r\n        data.to_professional =\r\n          users.find((u) => u.value === data.to_professional_id)?.label || '';\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n        if (authDate) data.authDate = moment(authDate).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'forwarding',\r\n          title: 'Encaminhamento para Terapeuta',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error: any) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else if (error.response && error.response.data) {\r\n          switch (error.response.data.message) {\r\n            case 'Form already sent':\r\n              setAlert({\r\n                isActive: true,\r\n                type: 'warning',\r\n                message: 'Formulário em análise, solicite a revisão.',\r\n              });\r\n              break;\r\n            default:\r\n              setAlert({\r\n                isActive: true,\r\n                type: 'error',\r\n                message: 'Erro ao enviar encaminhamento.',\r\n              });\r\n              break;\r\n          }\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar encaminhamento.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, date, authDate, id, users, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers || { record: record?.number }}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              FICHA PARA ENCAMINHAMENTO TERAPEUTA\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={6}>\r\n              <Select\r\n                name=\"professional_id\"\r\n                defaultValue={\r\n                  form?.answers\r\n                    ? {\r\n                        value: form?.answers.professional_id,\r\n                        label: users.find(\r\n                          (user) =>\r\n                            user.value === form?.answers.professional_id,\r\n                        )?.label,\r\n                      }\r\n                    : null\r\n                }\r\n                isMulti={false}\r\n                placeholder=\"Terapeuta Responsável\"\r\n                options={users}\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Select\r\n                name=\"to_professional_id\"\r\n                defaultValue={\r\n                  form?.answers\r\n                    ? {\r\n                        value: form?.answers.to_professional_id,\r\n                        label: users.find(\r\n                          (user) =>\r\n                            user.value === form?.answers.to_professional_id,\r\n                        )?.label,\r\n                      }\r\n                    : null\r\n                }\r\n                isMulti={false}\r\n                placeholder=\"Terapeuta Encaminhado\"\r\n                options={users}\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data do encaminhamento\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={date}\r\n                  onChange={(d) => setDate(d as Date)}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n\r\n            <Grid item xs={8}>\r\n              <Input id=\"area\" label=\"Setor encaminhado\" name=\"area\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"responsible_names\"\r\n                isMultiline\r\n                rows={5}\r\n                label=\"Nome dos terapeutas responsáveis (se houver mais de um no setor)\"\r\n                name=\"responsible_names\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"motive\"\r\n                isMultiline\r\n                rows={5}\r\n                label=\"Motivo do encaminhamento\"\r\n                name=\"motive\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input\r\n                id=\"professional_signature\"\r\n                label=\"Assinatura do terapeuta\"\r\n                name=\"professional_signature\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={4} />\r\n\r\n            <Grid item xs={4}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={authDate}\r\n                  onChange={(d) => setAuthDate(d as Date)}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.goBack()}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default ForwardForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst FoodForwardForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [birth, setBirth] = useState(new Date());\r\n  const [date, setDate] = useState(new Date());\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n            setBirth(\r\n              formResponse?.data.answers.birth\r\n                ? moment(formResponse?.data.answers.birth).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.birth = moment(birth).format('YYYY-MM-DD');\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'foodForward',\r\n          title: 'Encaminhamento Setor de Transtornos Alimentares',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar encaminhamento.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, birth, date, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              FICHA DE ENCAMINHAMENTO PARA O SETOR DE TRANSTORNOS ALIMENTARES\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"patient_name\"\r\n                label=\"Nome do Paciente\"\r\n                name=\"patient_name\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"parent_names\"\r\n                label=\"Nome dos pais\"\r\n                name=\"parent_names\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data de Nascimento\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={birth}\r\n                  onChange={(d) => setBirth(d as Date)}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input id=\"age\" label=\"Idade\" name=\"age\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"number\"\r\n                label=\"Número do Prontuário\"\r\n                defaultValue={record?.number}\r\n                name=\"number\"\r\n              />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo do encaminhamento para o CEAPIA\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo do encaminhamento para o Setor de Transtornos\r\n                  Alimentares\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"food_motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"food_motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"professional\"\r\n                  label=\"Nome do Terapeuta\"\r\n                  name=\"professional\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item xs={12}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data do encaminhamento\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date}\r\n                    onChange={(d) => setDate(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default FoodForwardForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst GroupForwardForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [birth, setBirth] = useState(new Date());\r\n  const [date, setDate] = useState(new Date());\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n            setBirth(\r\n              formResponse?.data.answers.birth\r\n                ? moment(formResponse?.data.answers.birth).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.birth = moment(birth).format('YYYY-MM-DD');\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'groupForward',\r\n          title: 'Encaminhamento Setor de Grupos',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar encaminhamento.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, birth, date, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              FICHA DE ENCAMINHAMENTO PARA O SETOR DE GRUPOS\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid item xs={9} />\r\n\r\n          <Grid item xs={3}>\r\n            <Input\r\n              disabled\r\n              id=\"number\"\r\n              label=\"Número do Prontuário\"\r\n              defaultValue={record?.number}\r\n              name=\"number\"\r\n            />\r\n          </Grid>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"patient_name\"\r\n                label=\"Nome do Paciente\"\r\n                name=\"patient_name\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={2}>\r\n              <Input id=\"age\" label=\"Idade\" name=\"age\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input id=\"gender\" label=\"Sexo\" name=\"gender\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"parent_names\"\r\n                label=\"Contato do paciente / Responsável\"\r\n                name=\"parent_names\"\r\n              />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Tempo de atendimento no CEAPIA\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"time_from\" label=\"De\" name=\"time_from\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"time_to\" label=\"à\" name=\"time_to\" />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"professional\"\r\n                label=\"Nome do Terapeuta\"\r\n                name=\"professional\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"professional_contact\"\r\n                label=\"Contato do Terapeuta\"\r\n                name=\"professional_contact\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={8}>\r\n              <Input\r\n                id=\"supervisor\"\r\n                label=\"Supervisor ou Preceptor\"\r\n                name=\"supervisor\"\r\n              />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo da busca por atendimento no CEAPIA\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo do encaminhamento para o Setor de Grupos\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"group_motive\"\r\n                  label=\"(Principais sintomas/conflitos; hipótese diagnóstica; se permanecerá em atendimento individual concomitante ou não)\"\r\n                  name=\"group_motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Breve síntese do funcionamento psíquico\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"resume_motive\"\r\n                  label=\"(Nível de gravidade dos sintomas, capacidade de adesão/vinculação; se há atuações graves ou risco; insight; breve notícia sobre funcionamento familiar)\r\n\"\r\n                  name=\"resume_motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item xs={12}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data do encaminhamento\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date}\r\n                    onChange={(d) => setDate(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default GroupForwardForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst ClinicForwardForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [birth, setBirth] = useState(new Date());\r\n  const [date, setDate] = useState(new Date());\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n            setBirth(\r\n              formResponse?.data.answers.birth\r\n                ? moment(formResponse?.data.answers.birth).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.birth = moment(birth).format('YYYY-MM-DD');\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'clinicForward',\r\n          title: 'Encaminhamento Setor Corpo Clínico',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar encaminhamento.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, birth, date, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              FICHA DE ENCAMINHAMENTO CORPO CLÍNICO\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"patient_name\"\r\n                label=\"Nome do Paciente\"\r\n                name=\"patient_name\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"parent_names\"\r\n                label=\"Nome dos pais\"\r\n                name=\"parent_names\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data de Nascimento\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={birth}\r\n                  onChange={(d) => setBirth(d as Date)}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input id=\"age\" label=\"Idade\" name=\"age\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"phones\"\r\n                label=\"Telefones de contato\"\r\n                placeholder=\"(__) _______\"\r\n                name=\"phones\"\r\n              />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo do encaminhamento da criança/adolescente\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Alguma outra necessidade de tratamento? Quais?\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"treatment_motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"treatment_motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Hipótese Diagnóstica ou diagnóstico de outra especialidade\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"hip_motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"hip_motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Possui redução de valor? Tem indicação para a redução?\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"reduce_motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"reduce_motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Disponibilidade para atendimento psicoterápico:\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"psic_motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"psic_motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"professional\"\r\n                  label=\"Terapeuta da criança/adolescente\"\r\n                  name=\"professional\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"contact\"\r\n                  label=\"Telefone de contato\"\r\n                  name=\"contact\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"pro_email\"\r\n                  label=\"E-mail institucional\"\r\n                  name=\"pro_email\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item xs={12}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data do encaminhamento\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date}\r\n                    onChange={(d) => setDate(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default ClinicForwardForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\n\r\nimport Input from '../../../components/Input';\r\nimport Loader from '../../../components/Loader';\r\nimport Select from '../../../components/Select';\r\nimport CustomCheckbox from '../../../components/Checkbox';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\n\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\n\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport { SelectProps } from '../../Records/List/dto';\r\nimport { User } from '../../../models/user';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst ClosureForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [users, setUsers] = useState<SelectProps[]>([]);\r\n  const [date, setDate] = useState(new Date());\r\n  const [authDate, setAuthDate] = useState<Date | null>(null);\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n\r\n        if (recordResponse?.data) {\r\n          setRecord(recordResponse.data);\r\n        }\r\n\r\n        const usersResponse = await api.current?.get('/users');\r\n\r\n        if (usersResponse?.data) {\r\n          setUsers(\r\n            usersResponse.data.map((user: User) => ({\r\n              value: user.id,\r\n              label: `${user.firstName} ${user.lastName}`,\r\n            })),\r\n          );\r\n        }\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n\r\n            setAuthDate(\r\n              formResponse?.data.answers.authDate\r\n                ? moment(formResponse?.data.answers.authDate).toDate()\r\n                : null,\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.professional =\r\n          users.find((u) => u.value === data.professional_id)?.label || '';\r\n\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n        if (authDate) data.authDate = moment(authDate).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'closure',\r\n          title: 'Encerramento do Atendimento',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else if (error.response && error.response.data) {\r\n          switch (error.response.data.message) {\r\n            case 'Form already sent':\r\n              setAlert({\r\n                isActive: true,\r\n                type: 'warning',\r\n                message: 'Formulário em análise, solicite a revisão.',\r\n              });\r\n              break;\r\n            default:\r\n              setAlert({\r\n                isActive: true,\r\n                type: 'error',\r\n                message: 'Erro ao enviar encerramento.',\r\n              });\r\n              break;\r\n          }\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar encerramento.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, date, authDate, id, users, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers || { record: record?.number }}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              NOTA DE ENCERRAMENTO DO ATENDIMENTO\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={6}>\r\n              <Select\r\n                name=\"professional_id\"\r\n                defaultValue={\r\n                  form?.answers\r\n                    ? {\r\n                        value: form?.answers.professional_id,\r\n                        label: users.find(\r\n                          (user) =>\r\n                            user.value === form?.answers.professional_id,\r\n                        )?.label,\r\n                      }\r\n                    : null\r\n                }\r\n                isMulti={false}\r\n                placeholder=\"Nome do Terapeuta\"\r\n                options={users}\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={2} />\r\n\r\n            <Grid item xs={4}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data do encerramento\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={date}\r\n                  onChange={(d) => setDate(d as Date)}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <FormLabel className={classes.formTitles}>\r\n                O paciente encerrou atendimento por:\r\n              </FormLabel>\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <CustomCheckbox\r\n                name=\"clinic\"\r\n                value=\"clinic\"\r\n                label=\"Alta clínica\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <CustomCheckbox\r\n                name=\"combined\"\r\n                value=\"combined\"\r\n                label=\"Alta combinada\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <CustomCheckbox\r\n                name=\"interruption\"\r\n                value=\"interruption\"\r\n                label=\"Interrupção\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <CustomCheckbox name=\"abandon\" value=\"abandon\" label=\"Abandono\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <CustomCheckbox\r\n                name=\"forwarding\"\r\n                value=\"forwarding\"\r\n                label=\"Encaminhamento para consultório do terapeuta\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <CustomCheckbox name=\"others\" value=\"others\" label=\"Outros\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"motive\"\r\n                isMultiline\r\n                rows={5}\r\n                label=\"Explique brevemente as circunstâncias do encerramento do atendimento\"\r\n                name=\"motive\"\r\n              />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  *mediante aprovação da direção de ambulatório\r\n                </FormLabel>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            {/* <Divider className={classes.divider} /> */}\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.goBack()}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default ClosureForm;\r\n","import { Form } from '@unform/web';\r\nimport * as Yup from 'yup';\r\nimport {\r\n  Button,\r\n  Container,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  IconButton,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\nimport { Create, Warning, Visibility, VisibilityOff } from '@material-ui/icons';\r\nimport { yellow } from '@material-ui/core/colors';\r\nimport {\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  DialogTitle,\r\n} from '@mui/material';\r\n\r\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\r\n\r\nimport { FormHandles } from '@unform/core';\r\nimport Loader from '../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../components/Snackbar';\r\nimport { useAxios } from '../../utils/hooks';\r\nimport { Signature as SignatureModel } from '../../models/signature';\r\nimport Input from '../../components/Input';\r\nimport getValidationErrors from '../../utils/getValidationErrors';\r\nimport Select from '../../components/Select';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    marginTop: theme.spacing(1),\r\n    padding: theme.spacing(1),\r\n    background: theme.palette.background.paper,\r\n  },\r\n  title: {\r\n    color: theme.palette.secondary.light,\r\n  },\r\n  input: {\r\n    display: 'none',\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(1),\r\n    width: '100%',\r\n  },\r\n  img: {\r\n    width: '100%',\r\n    background: 'transparent',\r\n  },\r\n  warning: {\r\n    display: 'flex',\r\n    alignItems: 'center',\r\n    justifyContent: 'center',\r\n    fontSize: '1.1rem',\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  password: {\r\n    display: 'flex',\r\n    justifyContent: 'center',\r\n    padding: theme.spacing(2),\r\n  },\r\n  typogra: {\r\n    margin: theme.spacing(2),\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n}));\r\n\r\nconst boards = [\r\n  { value: 'CRF', label: 'CRF' },\r\n  { value: 'CRN2', label: 'CRN2' },\r\n  { value: 'CRP', label: 'CRP' },\r\n  { value: 'ABPp', label: 'ABPp' },\r\n  { value: 'CRM', label: 'CRM' },\r\n  { value: 'CRESS', label: 'CRESS' },\r\n  // { value: 'UBAM', label: 'UBAM' }, // musicoterapia\r\n  // { value: 'CFP', label: 'CFP' },\r\n  // { value: 'CRP', label: 'CRP' },\r\n  // { value: 'CFM', label: 'CFM' },\r\n  // { value: 'CRM', label: 'CRM' },\r\n  // { value: 'CPF', label: 'CPF' },\r\n];\r\n\r\nconst Signature: React.FC = () => {\r\n  const api = useAxios();\r\n  const classes = useStyles();\r\n  const formRef = useRef<FormHandles>(null);\r\n  const form2Ref = useRef<FormHandles>(null);\r\n  const [loading, setLoading] = useState(true);\r\n  const [showPass, setShowPass] = useState(false);\r\n  const [openCreatePass, setOpenCreatePass] = useState(false);\r\n  const [openUpdatePass, setOpenUpdatePass] = useState(false);\r\n  const [hasSignature, setHasSignature] = useState<boolean | null>(null);\r\n  const [hasSignaturePassword, setHasSignaturePassword] =\r\n    useState<boolean | null>(null);\r\n  const [signature, setSignature] = useState<SignatureModel | null>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function userHasSignature() {\r\n      try {\r\n        const hasSignatureResponse = await api.current?.get(\r\n          `/users/hasSignature`,\r\n        );\r\n\r\n        setHasSignature(hasSignatureResponse?.data.hasSignature);\r\n\r\n        if (hasSignatureResponse?.data.hasSignature === true) {\r\n          const signatureResponse = await api.current?.get(`/users/signature`);\r\n          setSignature(signatureResponse?.data);\r\n        }\r\n\r\n        const hasSignaturePasswordResponse = await api.current?.get(\r\n          `/users/hasSignaturePassword`,\r\n        );\r\n\r\n        setHasSignaturePassword(\r\n          hasSignaturePasswordResponse?.data.hasSignaturePassword,\r\n        );\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao buscar assinatura.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    userHasSignature();\r\n  }, [api]);\r\n\r\n  const handleSignature = async ({ target }: any) => {\r\n    setLoading(true);\r\n    const file = target.files[0];\r\n\r\n    try {\r\n      const formData = new FormData();\r\n      formData.append('file', file);\r\n      const fileResponse = await api.current?.post(\r\n        '/files/signature',\r\n        formData,\r\n      );\r\n\r\n      if (fileResponse?.data) {\r\n        const signatureResponse = await api.current?.patch('/users/signature', {\r\n          ...signature,\r\n          file_id: fileResponse.data._id,\r\n        });\r\n\r\n        setSignature(signatureResponse?.data);\r\n        setHasSignature(true);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Assinatura cadastrada com sucesso.',\r\n        });\r\n      }\r\n    } catch (error) {\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'error',\r\n        message: 'Erro ao cadastrar assinatura.',\r\n      });\r\n    } finally {\r\n      setLoading(false);\r\n    }\r\n  };\r\n\r\n  const toggleShowPass = () => {\r\n    setShowPass(!showPass);\r\n  };\r\n\r\n  const handleOpenCreatePass = () => {\r\n    setOpenCreatePass(true);\r\n  };\r\n\r\n  const handleCloseCreatePass = () => {\r\n    setOpenCreatePass(false);\r\n  };\r\n\r\n  const handleOpenUpdatePass = () => {\r\n    setOpenUpdatePass(true);\r\n  };\r\n\r\n  const handleCloseUpdatePass = () => {\r\n    setOpenUpdatePass(false);\r\n  };\r\n\r\n  const getPassword = (password: number) => {\r\n    const stringPassword = password.toString();\r\n\r\n    const numLength = stringPassword.replace(/^-|\\./g, '').length;\r\n\r\n    if (numLength === 3) {\r\n      return `0${stringPassword}`;\r\n    }\r\n\r\n    if (numLength === 2) {\r\n      return `00${stringPassword}`;\r\n    }\r\n\r\n    if (numLength === 1) {\r\n      return `000${stringPassword}`;\r\n    }\r\n\r\n    return stringPassword;\r\n  };\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleProfessionalData = useCallback(\r\n    async (data) => {\r\n      try {\r\n        resetAlert();\r\n        form2Ref.current?.setErrors({});\r\n\r\n        const schema = Yup.object().shape({\r\n          name: Yup.string().required('Nome é obrigatório'),\r\n          number: Yup.string().required('Número de registro é obrigatório'),\r\n          register: Yup.string().required('Conselho de registro é obrigatório'),\r\n        });\r\n\r\n        await schema.validate(data, { abortEarly: false });\r\n\r\n        await api.current?.patch(`/users/signature`, {\r\n          file_id: signature && signature.file ? signature?.file._id : null,\r\n          ...data,\r\n        });\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Assinatura atualizada com sucesso.',\r\n        });\r\n\r\n        const currentSignature = signature || ({} as SignatureModel);\r\n        currentSignature.name = data.name;\r\n        currentSignature.number = data.number;\r\n        currentSignature.register = data.register;\r\n        setSignature(currentSignature);\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          form2Ref.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao atualizar dados da assinatura.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, signature],\r\n  );\r\n\r\n  const handleSubmitCreatePass = useCallback(\r\n    async (data: { password: number }) => {\r\n      try {\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        const schema = Yup.object().shape({\r\n          password: Yup.string()\r\n            .matches(/^[0-9]+$/, 'Somente números permitidos')\r\n            .min(4, 'Senha deve conter 4 dígitos')\r\n            .max(4, 'Senha deve conter 4 dígitos')\r\n            .required('Senha é obrigatória'),\r\n        });\r\n\r\n        await schema.validate(\r\n          { password: data.password },\r\n          { abortEarly: false },\r\n        );\r\n\r\n        data.password = Number(data.password);\r\n\r\n        await api.current?.post(`/users/signature/password`, data);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Senha criada com sucesso.',\r\n        });\r\n\r\n        setHasSignaturePassword(true);\r\n\r\n        if (signature) {\r\n          const currentSignature = signature;\r\n          currentSignature.password = data.password;\r\n          setSignature(currentSignature);\r\n        }\r\n\r\n        handleCloseCreatePass();\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao criar senha.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, signature],\r\n  );\r\n\r\n  const handleSubmitUpdatePass = useCallback(\r\n    async (data: { new_password: number; old_password: number }) => {\r\n      try {\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        const schema = Yup.object().shape({\r\n          new_password: Yup.string()\r\n            .matches(/^[0-9]+$/, 'Somente números permitidos')\r\n            .min(4, 'Senha deve conter 4 dígitos')\r\n            .max(4, 'Senha deve conter 4 dígitos')\r\n            .required('Senha é obrigatória'),\r\n          old_password: Yup.string()\r\n            .matches(/^[0-9]+$/, 'Somente números permitidos')\r\n            .min(4, 'Senha deve conter 4 dígitos')\r\n            .max(4, 'Senha deve conter 4 dígitos')\r\n            .required('Senha é obrigatória'),\r\n        });\r\n\r\n        await schema.validate(\r\n          {\r\n            new_password: data.new_password,\r\n            old_password: data.old_password,\r\n          },\r\n          { abortEarly: false },\r\n        );\r\n\r\n        data.new_password = Number(data.new_password);\r\n        data.old_password = Number(data.old_password);\r\n\r\n        await api.current?.patch(`/users/signature/password`, data);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Senha atualizada com sucesso.',\r\n        });\r\n\r\n        if (signature) {\r\n          const currentSignature = signature;\r\n          currentSignature.password = data.new_password;\r\n          setSignature(currentSignature);\r\n        }\r\n\r\n        handleCloseUpdatePass();\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao atualizar senha.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, signature],\r\n  );\r\n\r\n  return (\r\n    <Container>\r\n      <Loader loading={loading} />\r\n\r\n      <Dialog\r\n        open={openCreatePass}\r\n        onClose={handleCloseCreatePass}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <Form ref={formRef} onSubmit={handleSubmitCreatePass}>\r\n          <DialogTitle id=\"form-dialog-title\">Cadastrar Senha</DialogTitle>\r\n\r\n          <DialogContent>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Insira a senha para assinar digitalmente\r\n                </FormLabel>\r\n                <br />\r\n                <span>\r\n                  (deve existir uma assinatura previamente cadastrada)\r\n                </span>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"password\"\r\n                  label=\"Senha\"\r\n                  name=\"password\"\r\n                  size={4}\r\n                  maxLength={4}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n\r\n          <DialogActions>\r\n            <Button onClick={handleCloseCreatePass}>Cancelar</Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog>\r\n\r\n      <Dialog\r\n        open={openUpdatePass}\r\n        onClose={handleCloseUpdatePass}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <Form ref={formRef} onSubmit={handleSubmitUpdatePass}>\r\n          <DialogTitle id=\"form-dialog-title\">Atualizar Senha</DialogTitle>\r\n\r\n          <DialogContent>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Insira os dados para atualizar sua senha\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"old_password\"\r\n                  label=\"Senha atual\"\r\n                  name=\"old_password\"\r\n                  size={4}\r\n                  maxLength={4}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"new_password\"\r\n                  label=\"Nova senha\"\r\n                  name=\"new_password\"\r\n                  size={4}\r\n                  maxLength={4}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n\r\n          <DialogActions>\r\n            <Button onClick={handleCloseUpdatePass}>Cancelar</Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog>\r\n\r\n      <Grid\r\n        container\r\n        spacing={2}\r\n        className={classes.root}\r\n        style={{ display: loading ? 'none' : '' }}\r\n      >\r\n        <Grid item xs={12}>\r\n          <h2 className={classes.title}>Assinatura Digital</h2>\r\n        </Grid>\r\n\r\n        <Divider className={classes.divider} />\r\n\r\n        <Grid\r\n          container\r\n          spacing={2}\r\n          className={classes.root}\r\n          style={{ display: loading ? 'none' : '' }}\r\n        >\r\n          <Grid item xs={5}>\r\n            {!signature?.file && (\r\n              <Grid item xs={12}>\r\n                <Typography\r\n                  variant=\"h6\"\r\n                  component=\"h1\"\r\n                  color=\"textSecondary\"\r\n                  className={classes.warning}\r\n                >\r\n                  <Warning style={{ color: yellow[800] }} />\r\n                  Usuário não possui assinatura cadastrada.\r\n                </Typography>\r\n              </Grid>\r\n            )}\r\n\r\n            {signature && signature.file && (\r\n              <Grid item xs={12}>\r\n                <Typography\r\n                  align=\"center\"\r\n                  variant=\"h6\"\r\n                  component=\"h1\"\r\n                  color=\"textSecondary\"\r\n                >\r\n                  Assinatura atual\r\n                </Typography>\r\n\r\n                <Typography align=\"center\">\r\n                  <img\r\n                    alt=\"userSignature\"\r\n                    className={classes.img}\r\n                    src={`${process.env.REACT_APP_PRONTUARIO_API}/${signature.file.path}`}\r\n                  />\r\n                </Typography>\r\n              </Grid>\r\n            )}\r\n\r\n            <Grid item xs={12}>\r\n              <Typography align=\"center\" className={classes.typogra}>\r\n                <input\r\n                  className={classes.input}\r\n                  id=\"faceImage\"\r\n                  type=\"file\"\r\n                  onChange={handleSignature}\r\n                />\r\n                <FormLabel htmlFor=\"faceImage\">\r\n                  <Button\r\n                    startIcon={<Create />}\r\n                    color=\"primary\"\r\n                    component=\"span\"\r\n                    variant=\"contained\"\r\n                    aria-label=\"upload signature\"\r\n                  >\r\n                    {`${hasSignature ? 'Atualizar' : 'Cadastrar'} Assinatura`}\r\n                  </Button>\r\n                </FormLabel>\r\n              </Typography>\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <Grid\r\n            item\r\n            xs={2}\r\n            style={{ display: 'flex', justifyContent: 'center' }}\r\n          >\r\n            <Divider orientation=\"vertical\" />\r\n          </Grid>\r\n\r\n          <Grid item xs={5}>\r\n            {hasSignaturePassword === false && (\r\n              <Grid item xs={12}>\r\n                <Typography\r\n                  align=\"center\"\r\n                  variant=\"h6\"\r\n                  component=\"h1\"\r\n                  color=\"textSecondary\"\r\n                  className={classes.warning}\r\n                >\r\n                  <Warning style={{ color: yellow[800] }} />\r\n                  Usuário não possui uma senha cadastrada.\r\n                </Typography>\r\n              </Grid>\r\n            )}\r\n\r\n            {hasSignaturePassword === true && signature && signature?.password && (\r\n              <Grid item xs={12}>\r\n                <Typography\r\n                  align=\"center\"\r\n                  variant=\"h6\"\r\n                  component=\"h1\"\r\n                  color=\"textSecondary\"\r\n                >\r\n                  Senha atual\r\n                </Typography>\r\n\r\n                <div className={classes.password}>\r\n                  <Typography component=\"h1\" variant=\"h3\">\r\n                    {showPass ? getPassword(signature?.password) : '****'}\r\n                  </Typography>\r\n\r\n                  <IconButton\r\n                    color=\"primary\"\r\n                    aria-label=\"show password\"\r\n                    component=\"span\"\r\n                    onClick={() => toggleShowPass()}\r\n                  >\r\n                    {showPass ? (\r\n                      <VisibilityOff color=\"primary\" />\r\n                    ) : (\r\n                      <Visibility color=\"primary\" />\r\n                    )}\r\n                  </IconButton>\r\n                </div>\r\n              </Grid>\r\n            )}\r\n\r\n            <Grid item xs={12}>\r\n              <Typography align=\"center\" className={classes.typogra}>\r\n                <Button\r\n                  startIcon={<Create />}\r\n                  color=\"primary\"\r\n                  component=\"span\"\r\n                  variant=\"contained\"\r\n                  aria-label=\"upload signature\"\r\n                  onClick={() => {\r\n                    return hasSignaturePassword\r\n                      ? handleOpenUpdatePass()\r\n                      : handleOpenCreatePass();\r\n                  }}\r\n                >\r\n                  {`${hasSignaturePassword ? 'Atualizar' : 'Cadastrar'} Senha`}\r\n                </Button>\r\n              </Typography>\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <Grid item xs={12}>\r\n            <Divider />\r\n          </Grid>\r\n\r\n          <Grid item xs={12}>\r\n            {(!signature ||\r\n              !signature?.name ||\r\n              !signature?.number ||\r\n              !signature?.register) && (\r\n              <Grid item xs={12}>\r\n                <Typography\r\n                  align=\"center\"\r\n                  variant=\"h6\"\r\n                  component=\"h1\"\r\n                  color=\"textSecondary\"\r\n                  className={classes.warning}\r\n                >\r\n                  <Warning style={{ color: yellow[800] }} />\r\n                  Dados profissionais faltando para assinatura.\r\n                </Typography>\r\n              </Grid>\r\n            )}\r\n\r\n            {!loading && (\r\n              <Grid item xs={12}>\r\n                <Form\r\n                  id=\"form2\"\r\n                  ref={form2Ref}\r\n                  initialData={signature || {}}\r\n                  onSubmit={handleProfessionalData}\r\n                  className={classes.root}\r\n                >\r\n                  <FormControl fullWidth className={classes.formControl}>\r\n                    <Grid container spacing={2} alignItems=\"center\">\r\n                      <Grid item xs={4}>\r\n                        <Input id=\"name\" label=\"Nome\" name=\"name\" />\r\n                      </Grid>\r\n\r\n                      <Grid item xs={4}>\r\n                        <Input\r\n                          id=\"number\"\r\n                          label=\"Número de Registro\"\r\n                          name=\"number\"\r\n                        />\r\n                      </Grid>\r\n\r\n                      <Grid item xs={4}>\r\n                        <Select\r\n                          name=\"register\"\r\n                          isMulti={false}\r\n                          placeholder=\"Conselho\"\r\n                          menuPosition=\"fixed\"\r\n                          options={boards}\r\n                          defaultValue={\r\n                            signature?.register\r\n                              ? {\r\n                                  value: signature.register,\r\n                                  label: signature.register,\r\n                                }\r\n                              : null\r\n                          }\r\n                        />\r\n                      </Grid>\r\n                    </Grid>\r\n                  </FormControl>\r\n\r\n                  <Grid item xs={12}>\r\n                    <Typography align=\"center\" className={classes.typogra}>\r\n                      <Button\r\n                        startIcon={<Create />}\r\n                        type=\"submit\"\r\n                        color=\"primary\"\r\n                        variant=\"contained\"\r\n                      >\r\n                        Atualizar dados\r\n                      </Button>\r\n                    </Typography>\r\n                  </Grid>\r\n                </Form>\r\n              </Grid>\r\n            )}\r\n          </Grid>\r\n        </Grid>\r\n      </Grid>\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </Container>\r\n  );\r\n};\r\n\r\nexport default Signature;\r\n","import { Form } from '@unform/web';\r\nimport * as Yup from 'yup';\r\nimport Select from 'react-select';\r\nimport {\r\n  Button,\r\n  Container,\r\n  Divider,\r\n  FormLabel,\r\n  Grid,\r\n  IconButton,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\nimport { Create, Warning, Visibility, VisibilityOff } from '@material-ui/icons';\r\nimport { yellow } from '@material-ui/core/colors';\r\nimport {\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  DialogTitle,\r\n} from '@mui/material';\r\n\r\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\r\n\r\nimport { FormHandles } from '@unform/core';\r\nimport { useKeycloak } from '@react-keycloak/web';\r\nimport Loader from '../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../components/Snackbar';\r\n\r\nimport { useAxios } from '../../utils/hooks';\r\nimport { Setting as SettingModel } from '../../models/setting';\r\nimport Input from '../../components/Input';\r\nimport getValidationErrors from '../../utils/getValidationErrors';\r\nimport { SelectProps } from '../Records/List/dto';\r\nimport { User } from '../../models/user';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    marginTop: theme.spacing(1),\r\n    padding: theme.spacing(1),\r\n    background: theme.palette.background.paper,\r\n  },\r\n  title: {\r\n    color: theme.palette.secondary.light,\r\n  },\r\n  input: {\r\n    display: 'none',\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(1),\r\n    width: '100%',\r\n  },\r\n  img: {\r\n    width: '100%',\r\n    background: 'transparent',\r\n  },\r\n  warning: {\r\n    display: 'flex',\r\n    alignItems: 'center',\r\n    justifyContent: 'center',\r\n    fontSize: '1.1rem',\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  password: {\r\n    display: 'flex',\r\n    justifyContent: 'center',\r\n    padding: theme.spacing(2),\r\n  },\r\n  typogra: {\r\n    margin: theme.spacing(2),\r\n  },\r\n  select: {\r\n    paddingTop: theme.spacing(5),\r\n  },\r\n}));\r\n\r\nconst Settings: React.FC = () => {\r\n  const api = useAxios();\r\n  const classes = useStyles();\r\n  const { keycloak } = useKeycloak();\r\n  const formRef = useRef<FormHandles>(null);\r\n  const [loading, setLoading] = useState(true);\r\n  const [showPass, setShowPass] = useState(false);\r\n  const [openCreatePass, setOpenCreatePass] = useState(false);\r\n  const [openUpdatePass, setOpenUpdatePass] = useState(false);\r\n  const [hasSignature, setHasSignature] = useState<boolean | null>(null);\r\n  const [hasSignaturePassword, setHasSignaturePassword] =\r\n    useState<boolean | null>(null);\r\n  const [users, setUsers] = useState<SelectProps[]>([]);\r\n  const [setting, setSetting] = useState<SettingModel | null>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getSettings() {\r\n      try {\r\n        const settingResponse = await api.current?.get(`/users/settings`);\r\n\r\n        setSetting(settingResponse?.data);\r\n\r\n        const usersResponse = await api.current?.get('/users');\r\n\r\n        if (usersResponse?.data) {\r\n          setUsers(\r\n            usersResponse.data.map((user: User) => ({\r\n              value: user.id,\r\n              label: `${user.firstName} ${user.lastName}`,\r\n            })),\r\n          );\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao buscar configurações.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getSettings();\r\n  }, [api]);\r\n\r\n  // const handleSignature = async ({ target }: any) => {\r\n  //   setLoading(true);\r\n  //   const file = target.files[0];\r\n\r\n  //   try {\r\n  //     const formData = new FormData();\r\n  //     formData.append('file', file);\r\n  //     const fileResponse = await api.current?.post('/files', formData);\r\n\r\n  //     if (fileResponse?.data) {\r\n  //       const signatureResponse = await api.current?.patch('/users/signature', {\r\n  //         file_id: fileResponse.data._id,\r\n  //       });\r\n\r\n  //       setSignature(signatureResponse?.data);\r\n  //       setHasSignature(true);\r\n\r\n  //       setAlert({\r\n  //         isActive: true,\r\n  //         type: 'success',\r\n  //         message: 'Assinatura cadastrada com sucesso.',\r\n  //       });\r\n  //     }\r\n  //   } catch (error) {\r\n  //     setAlert({\r\n  //       isActive: true,\r\n  //       type: 'error',\r\n  //       message: 'Erro ao cadastrar assinatura.',\r\n  //     });\r\n  //   } finally {\r\n  //     setLoading(false);\r\n  //   }\r\n  // };\r\n\r\n  const toggleShowPass = () => {\r\n    setShowPass(!showPass);\r\n  };\r\n\r\n  const handleOpenCreatePass = () => {\r\n    setOpenCreatePass(true);\r\n  };\r\n\r\n  const handleCloseCreatePass = () => {\r\n    setOpenCreatePass(false);\r\n  };\r\n\r\n  const handleOpenUpdatePass = () => {\r\n    setOpenUpdatePass(true);\r\n  };\r\n\r\n  const handleCloseUpdatePass = () => {\r\n    setOpenUpdatePass(false);\r\n  };\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSupervisorSelect = useCallback(\r\n    async (supervisor: any) => {\r\n      setLoading(true);\r\n      resetAlert();\r\n      try {\r\n        await api.current?.patch('users/settings', {\r\n          ...setting,\r\n          user_id: keycloak.subject,\r\n          supervisor_id: supervisor\r\n            ? supervisor.map((s: { value: string }) => s.value)\r\n            : null,\r\n        });\r\n\r\n        const settingResponse = await api.current?.get('users/settings');\r\n\r\n        if (settingResponse?.data) {\r\n          setSetting(settingResponse.data);\r\n        }\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Supervisor atualizado com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao atualizar supervisor.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [api, setting, keycloak],\r\n  );\r\n\r\n  const handlePreceptorSelect = useCallback(\r\n    async (preceptor: any) => {\r\n      setLoading(true);\r\n      resetAlert();\r\n      try {\r\n        await api.current?.patch('users/settings', {\r\n          ...setting,\r\n          user_id: keycloak.subject,\r\n          preceptor_id: preceptor\r\n            ? preceptor.map((p: { value: string }) => p.value)\r\n            : null,\r\n        });\r\n\r\n        const settingResponse = await api.current?.get('users/settings');\r\n\r\n        if (settingResponse?.data) {\r\n          setSetting(settingResponse.data);\r\n        }\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Preceptor atualizado com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao atualizar preceptor.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [api, setting, keycloak],\r\n  );\r\n\r\n  return (\r\n    <Container>\r\n      <Loader loading={loading} />\r\n\r\n      {/* <Dialog\r\n        open={openCreatePass}\r\n        onClose={handleCloseCreatePass}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <Form ref={formRef} onSubmit={handleSubmitCreatePass}>\r\n          <DialogTitle id=\"form-dialog-title\">Cadastrar Senha</DialogTitle>\r\n\r\n          <DialogContent>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Insira a senha para assinar digitalmente\r\n                </FormLabel>\r\n                <br />\r\n                <span>\r\n                  (deve existir uma assinatura previamente cadastrada)\r\n                </span>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"password\"\r\n                  label=\"Senha\"\r\n                  name=\"password\"\r\n                  size={4}\r\n                  maxLength={4}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n\r\n          <DialogActions>\r\n            <Button onClick={handleCloseCreatePass}>Cancelar</Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog> */}\r\n\r\n      {/* <Dialog\r\n        open={openUpdatePass}\r\n        onClose={handleCloseUpdatePass}\r\n        aria-labelledby=\"form-dialog-title\"\r\n      >\r\n        <Form ref={formRef} onSubmit={handleSubmitUpdatePass}>\r\n          <DialogTitle id=\"form-dialog-title\">Atualizar Senha</DialogTitle>\r\n\r\n          <DialogContent>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Insira os dados para atualizar sua senha\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"old_password\"\r\n                  label=\"Senha atual\"\r\n                  name=\"old_password\"\r\n                  size={4}\r\n                  maxLength={4}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"new_password\"\r\n                  label=\"Nova senha\"\r\n                  name=\"new_password\"\r\n                  size={4}\r\n                  maxLength={4}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n\r\n          <DialogActions>\r\n            <Button onClick={handleCloseUpdatePass}>Cancelar</Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog> */}\r\n\r\n      <Grid\r\n        container\r\n        spacing={2}\r\n        className={classes.root}\r\n        style={{ display: loading ? 'none' : '' }}\r\n      >\r\n        <Grid item xs={12}>\r\n          <h2 className={classes.title}>Configuração de conta</h2>\r\n        </Grid>\r\n\r\n        <Divider className={classes.divider} />\r\n\r\n        <Grid\r\n          container\r\n          spacing={2}\r\n          className={classes.root}\r\n          style={{ display: loading ? 'none' : '' }}\r\n        >\r\n          <Grid item xs={5}>\r\n            <Grid item xs={12}>\r\n              <Typography\r\n                align=\"center\"\r\n                variant=\"h6\"\r\n                component=\"h1\"\r\n                color=\"textSecondary\"\r\n              >\r\n                Supervisor\r\n              </Typography>\r\n            </Grid>\r\n\r\n            {!loading &&\r\n              setting &&\r\n              (!setting?.supervisor_id || !setting.supervisor_id.length) && (\r\n                <Grid item xs={12}>\r\n                  <Typography\r\n                    variant=\"h6\"\r\n                    component=\"h1\"\r\n                    color=\"textSecondary\"\r\n                    className={classes.warning}\r\n                  >\r\n                    <Warning style={{ color: yellow[800] }} />\r\n                    Usuário não possui supervisor.\r\n                  </Typography>\r\n                </Grid>\r\n              )}\r\n\r\n            {setting?.supervisor_id && users.length && (\r\n              <Select\r\n                name=\"supervisor\"\r\n                isClearable\r\n                className={classes.select}\r\n                defaultValue={users.filter((user) =>\r\n                  setting.supervisor_id.includes(user.value),\r\n                )}\r\n                isMulti\r\n                options={users}\r\n                onChange={handleSupervisorSelect}\r\n              />\r\n            )}\r\n\r\n            {!setting?.supervisor_id && users.length && (\r\n              <Select\r\n                name=\"supervisor\"\r\n                isClearable\r\n                className={classes.select}\r\n                isMulti\r\n                placeholder=\"Selecione um supervisor\"\r\n                options={users}\r\n                onChange={handleSupervisorSelect}\r\n              />\r\n            )}\r\n          </Grid>\r\n\r\n          <Grid\r\n            item\r\n            xs={2}\r\n            style={{ display: 'flex', justifyContent: 'center' }}\r\n          >\r\n            <Divider orientation=\"vertical\" />\r\n          </Grid>\r\n\r\n          <Grid item xs={5}>\r\n            <Grid item xs={12}>\r\n              <Typography\r\n                align=\"center\"\r\n                variant=\"h6\"\r\n                component=\"h1\"\r\n                color=\"textSecondary\"\r\n              >\r\n                Preceptor\r\n              </Typography>\r\n\r\n              {(!loading && setting && !setting?.preceptor_id) ||\r\n                (!setting?.preceptor_id.length && (\r\n                  <Grid item xs={12}>\r\n                    <Typography\r\n                      variant=\"h6\"\r\n                      component=\"h1\"\r\n                      color=\"textSecondary\"\r\n                      className={classes.warning}\r\n                    >\r\n                      <Warning style={{ color: yellow[800] }} />\r\n                      Usuário não possui preceptor.\r\n                    </Typography>\r\n                  </Grid>\r\n                ))}\r\n\r\n              {setting?.preceptor_id && users.length && (\r\n                <Select\r\n                  name=\"preceptor\"\r\n                  isClearable\r\n                  className={classes.select}\r\n                  defaultValue={users.filter((user) =>\r\n                    setting.preceptor_id.includes(user.value),\r\n                  )}\r\n                  isMulti\r\n                  options={users}\r\n                  onChange={handlePreceptorSelect}\r\n                />\r\n              )}\r\n\r\n              {!setting?.preceptor_id && users.length && (\r\n                <Select\r\n                  name=\"preceptor\"\r\n                  isClearable\r\n                  className={classes.select}\r\n                  isMulti\r\n                  placeholder=\"Selecione um preceptor\"\r\n                  options={users}\r\n                  onChange={handlePreceptorSelect}\r\n                />\r\n              )}\r\n            </Grid>\r\n          </Grid>\r\n        </Grid>\r\n      </Grid>\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </Container>\r\n  );\r\n};\r\n\r\nexport default Settings;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n  Button,\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  DialogTitle,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { green, red } from '@material-ui/core/colors';\r\nimport ReactSelect from 'react-select';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport CustomCheckbox from '../../../components/Checkbox';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport { SelectProps } from '../../Records/List/dto';\r\nimport { User } from '../../../models/user';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formSubTitles: {\r\n    fontWeight: 'normal',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n  groupTitle: {\r\n    display: 'flex',\r\n    '& span': {\r\n      fontWeight: 'bolder',\r\n    },\r\n  },\r\n}));\r\n\r\nconst historyItems = [\r\n  {\r\n    name: 'psychologist',\r\n    label: 'Com Psicólogo',\r\n  },\r\n  {\r\n    name: 'psychiatrist',\r\n    label: 'Com Psiquiatra',\r\n  },\r\n  {\r\n    name: 'neuro',\r\n    label: 'Com Neurologista',\r\n  },\r\n  {\r\n    name: 'fono',\r\n    label: 'Com Fonoaudiólogo',\r\n  },\r\n  {\r\n    name: 'psychopedagogue',\r\n    label: 'Com Psicopedagogo',\r\n  },\r\n  {\r\n    name: 'other',\r\n    label: 'Outros',\r\n  },\r\n];\r\n\r\nconst symtomsList = [\r\n  {\r\n    groupName: 'depression_symptoms',\r\n    groupLabel: 'Sintomas Depressivos',\r\n    subGroups: [\r\n      {\r\n        name: 'tristeza_excessiva_e_prolongada',\r\n        label: 'tristeza excessiva e prolongada',\r\n      },\r\n      {\r\n        name: 'choro',\r\n        label: 'choro',\r\n      },\r\n      {\r\n        name: 'desmotivacao',\r\n        label: 'desmotivação',\r\n      },\r\n      {\r\n        name: 'apatia',\r\n        label: 'apatia',\r\n      },\r\n      {\r\n        name: 'perda_de_interesse_por_atividades',\r\n        label: 'perda de interesse por atividades',\r\n      },\r\n      {\r\n        name: 'baixa_autoestima',\r\n        label: 'baixa autoestima',\r\n      },\r\n      {\r\n        name: 'isolamento',\r\n        label: 'isolamento',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'school_difficulties',\r\n    groupLabel: 'Dificuldades Relacionadas à Aprendizagem ou Escolares',\r\n    subGroups: [\r\n      {\r\n        name: 'dificuldade_na_aprendizagem',\r\n        label: 'dificuldade na aprendizagem',\r\n      },\r\n      {\r\n        name: 'baixo_rendimento_escolar',\r\n        label: 'baixo rendimento escolar',\r\n      },\r\n      {\r\n        name: 'evasao_escolar',\r\n        label: 'evasão/abandono escolar',\r\n      },\r\n      {\r\n        name: 'repetencia',\r\n        label: 'repetência',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'development_delay',\r\n    groupLabel: 'Atrasos no Desenvolvimento',\r\n    subGroups: [\r\n      {\r\n        name: 'atraso_na_linguagem',\r\n        label: 'atraso na linguagem',\r\n      },\r\n      {\r\n        name: 'motricidade',\r\n        label: 'motricidade',\r\n      },\r\n      {\r\n        name: 'imaturidade',\r\n        label: 'imaturidade',\r\n      },\r\n      {\r\n        name: 'comportamento_regressivo',\r\n        label: 'comportamento regressivo',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'humor_change',\r\n    groupLabel: 'Oscilações de Humor',\r\n    subGroups: [\r\n      {\r\n        name: 'labilidade',\r\n        label: 'labilidade',\r\n      },\r\n      {\r\n        name: 'oscilacao',\r\n        label: 'oscilação',\r\n      },\r\n      {\r\n        name: 'instabilidade',\r\n        label: 'instabilidade',\r\n      },\r\n      {\r\n        name: 'disforia',\r\n        label: 'disforia',\r\n      },\r\n      {\r\n        name: 'embotamento',\r\n        label: 'embotamento',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'intelligence_changes',\r\n    groupLabel: 'Alterações nos Padrões de Inteligência',\r\n    subGroups: [\r\n      {\r\n        name: 'altas_habilidades',\r\n        label: 'altas habilidades',\r\n      },\r\n      {\r\n        name: 'atraso_cognitivo',\r\n        label: 'atraso cognitivo',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'speech_changes',\r\n    groupLabel: 'Alterações nos Padrões de Fala',\r\n    subGroups: [\r\n      {\r\n        name: 'gagueira',\r\n        label: 'gagueira',\r\n      },\r\n      {\r\n        name: 'mutismo',\r\n        label: 'mutismo',\r\n      },\r\n      {\r\n        name: 'ecolalia',\r\n        label: 'ecolalia',\r\n      },\r\n      {\r\n        name: 'dislalia',\r\n        label: 'dislalia',\r\n      },\r\n      {\r\n        name: 'atraso na fala',\r\n        label: 'atraso na fala',\r\n      },\r\n      {\r\n        name: 'fala_estereotipada',\r\n        label: 'fala estereotipada',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'ansiety_symtoms',\r\n    groupLabel: 'Sintomas de Ansiedade',\r\n    subGroups: [\r\n      {\r\n        name: 'ansiedade_de_separação',\r\n        label: 'ansiedade de separação',\r\n      },\r\n      {\r\n        name: 'crise_de_panico',\r\n        label: 'crise de pânico',\r\n      },\r\n      {\r\n        name: 'masturbacao_excessiva',\r\n        label: 'masturbação excessiva',\r\n      },\r\n      {\r\n        name: 'comportamento_fobicos',\r\n        label: 'comportamento fóbicos',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'attention_changes',\r\n    groupLabel: 'Alterações nos Padrões de Atenção',\r\n    subGroups: [\r\n      {\r\n        name: 'desatencao',\r\n        label: 'desatenção',\r\n      },\r\n      {\r\n        name: 'distracao',\r\n        label: 'distração',\r\n      },\r\n      {\r\n        name: 'dificuldade_de_concentracao',\r\n        label: 'dificuldade de concentração',\r\n      },\r\n      {\r\n        name: 'hipo_ou_hipervigil',\r\n        label: 'hipo ou hipervigil',\r\n      },\r\n      {\r\n        name: 'hiper_ou_hipotenaz',\r\n        label: 'hiper ou hipotenaz',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'perception_changes',\r\n    groupLabel: 'Alterações nos Padrões de Sensopercepção',\r\n    subGroups: [\r\n      {\r\n        name: 'hipo_ou_hiper_sensível_a_toques',\r\n        label: 'desatenção',\r\n      },\r\n      {\r\n        name: 'cheiros',\r\n        label: 'cheiros',\r\n      },\r\n      {\r\n        name: 'barulhos',\r\n        label: 'barulhos',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'obsessive_behavior',\r\n    groupLabel: 'Comportamento Obsessivo',\r\n    subGroups: [\r\n      {\r\n        name: 'pensamentos_obsessivos',\r\n        label: 'pensamentos obsessivos',\r\n      },\r\n      {\r\n        name: 'rituais',\r\n        label: 'rituais',\r\n      },\r\n      {\r\n        name: 'manias',\r\n        label: 'manias',\r\n      },\r\n      {\r\n        name: 'riso_imotivado',\r\n        label: 'riso imotivado',\r\n      },\r\n      {\r\n        name: 'preocupacoes_excessivas_com_limpeza',\r\n        label: 'preocupações excessivas com limpeza',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'memory_changes',\r\n    groupLabel: 'Alterações nos Padrões de Memória',\r\n    subGroups: [\r\n      {\r\n        name: 'prejuizos',\r\n        label: 'prejuízos',\r\n      },\r\n      {\r\n        name: 'esquecimento',\r\n        label: 'esquecimento (recente ou remota)',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'stereotyped_behavior',\r\n    groupLabel: 'Comportamento Estereotipado',\r\n    subGroups: [\r\n      {\r\n        name: 'tiques',\r\n        label: 'tiques',\r\n      },\r\n      {\r\n        name: 'flapping',\r\n        label: 'flapping',\r\n      },\r\n      {\r\n        name: 'comportamento_repetitivos_ou_bizarros',\r\n        label: 'comportamento repetitivos ou bizarros',\r\n      },\r\n      {\r\n        name: 'estereotipia',\r\n        label: 'estereotipia',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'aggressiveness',\r\n    groupLabel: 'Agressividade',\r\n    subGroups: [\r\n      {\r\n        name: 'brigas',\r\n        label: 'brigas',\r\n      },\r\n      {\r\n        name: 'aggression',\r\n        label: 'agressão (auto e hetero)',\r\n      },\r\n      {\r\n        name: 'automutilacao',\r\n        label: 'automutilação',\r\n      },\r\n      {\r\n        name: 'risco_de_suicidio',\r\n        label: 'risco de suicídio',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'movement_changes',\r\n    groupLabel: 'Alterações nos Padrões Motores',\r\n    subGroups: [\r\n      {\r\n        name: 'agitation',\r\n        label: 'agitação (inclusive psicomotora)',\r\n      },\r\n      {\r\n        name: 'hipotonia',\r\n        label: 'hipotonia',\r\n      },\r\n      {\r\n        name: 'catatonia',\r\n        label: 'catatonia',\r\n      },\r\n      {\r\n        name: 'inquietacao',\r\n        label: 'inquietação',\r\n      },\r\n      {\r\n        name: 'hiperatividade',\r\n        label: 'hiperatividade',\r\n      },\r\n      {\r\n        name: 'dificuldades_motoras',\r\n        label: 'dificuldades motoras',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'fear_behavior',\r\n    groupLabel: 'Comportamento Receoso / Temeroso',\r\n    subGroups: [\r\n      {\r\n        name: 'inseguranca',\r\n        label: 'insegurança',\r\n      },\r\n      {\r\n        name: 'timidez_excessiva',\r\n        label: 'timidez excessiva',\r\n      },\r\n      {\r\n        name: 'medo_excessivo',\r\n        label: 'medo_excessivo',\r\n      },\r\n      {\r\n        name: 'retraimento',\r\n        label: 'retraimento',\r\n      },\r\n      {\r\n        name: 'desconfianca',\r\n        label: 'desconfiança',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'anti_social_behavior',\r\n    groupLabel: 'Comportamento Opositor ou Antisocial',\r\n    subGroups: [\r\n      {\r\n        name: 'dificuldade_com_limites',\r\n        label: 'dificuldade com limites',\r\n      },\r\n      {\r\n        name: 'conduta_opositora',\r\n        label: 'conduta opositora',\r\n      },\r\n      {\r\n        name: 'desafiador',\r\n        label: 'desafiador',\r\n      },\r\n      {\r\n        name: 'fuga',\r\n        label: 'fuga',\r\n      },\r\n      {\r\n        name: 'mentiras',\r\n        label: 'mentiras',\r\n      },\r\n      {\r\n        name: 'furtos',\r\n        label: 'furtos',\r\n      },\r\n      {\r\n        name: 'maltrato_com_animais',\r\n        label: 'maltrato com animais',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'orientation_changes',\r\n    groupLabel: 'Alterações nos Padrões de Orientação',\r\n    subGroups: [\r\n      {\r\n        name: 'dificuldade_na_organização_espacial',\r\n        label: 'dificuldade na organização espacial',\r\n      },\r\n      {\r\n        name: 'temporal',\r\n        label: 'temporal',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'dependency_changes',\r\n    groupLabel: 'Alterações nos Padrões de Dependência - Independência',\r\n    subGroups: [\r\n      {\r\n        name: 'coleito',\r\n        label: 'coleito',\r\n      },\r\n      {\r\n        name: 'simbiose',\r\n        label: 'simbiose',\r\n      },\r\n      {\r\n        name: 'dependencia_materna/paterna',\r\n        label: 'dependência materna/paterna',\r\n      },\r\n      {\r\n        name: 'dificuldade_para_fica_ sozinho',\r\n        label: 'dificuldade para ficar sozinho',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'impulsive_behavior',\r\n    groupLabel: 'Comportamento Impulsivo',\r\n    subGroups: [\r\n      {\r\n        name: 'descontrole_de_impulsos',\r\n        label: 'exposição a situações de riscos',\r\n      },\r\n      {\r\n        name: 'exposicao_a_situacoes_de_riscos',\r\n        label: 'exposição a situações de riscos',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'thinking_changes',\r\n    groupLabel: 'Alterações nos Padrões de Pensamento e Consciência',\r\n    subGroups: [\r\n      {\r\n        name: 'fuga_de_ideias',\r\n        label: 'fuga de ideias',\r\n      },\r\n      {\r\n        name: 'pensamento_concreto',\r\n        label: 'pensamento concreto',\r\n      },\r\n      {\r\n        name: 'agitacao_psicomotora',\r\n        label: 'agitação psicomotora',\r\n      },\r\n      {\r\n        name: 'pensamento_desorganizado_ou_confuso',\r\n        label: 'pensamento desorganizado ou confuso',\r\n      },\r\n      {\r\n        name: 'falta_de_juizo_critico',\r\n        label: 'falta de juízo crítico',\r\n      },\r\n      {\r\n        name: 'alucinacoes',\r\n        label: 'alucinações',\r\n      },\r\n      {\r\n        name: 'delirios',\r\n        label: 'delírios',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'relationship_changes',\r\n    groupLabel: 'Alterações nos Padrões de Relacionamentos',\r\n    subGroups: [\r\n      {\r\n        name: 'social_difficulties',\r\n        label: 'dificuldade de socialização ou de interação ex: não ter amigos',\r\n      },\r\n      {\r\n        name: 'isolamento',\r\n        label: 'isolamento',\r\n      },\r\n      {\r\n        name: 'prejuizos_nas_relacoes_familiares',\r\n        label: 'prejuízos nas relações familiares',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'frustation_tolerancy',\r\n    groupLabel: 'Baixa Tolerância à Frustração',\r\n  },\r\n  {\r\n    groupName: 'sleep_changes',\r\n    groupLabel: 'Alterações nos Padrões de Sono',\r\n    subGroups: [\r\n      {\r\n        name: 'insonia',\r\n        label: 'insônia',\r\n      },\r\n      {\r\n        name: 'dificuldade_para_dormir',\r\n        label: 'dificuldade para dormir',\r\n      },\r\n      {\r\n        name: 'sonambulismo',\r\n        label: 'sonambulismo',\r\n      },\r\n      {\r\n        name: 'terror_noturno',\r\n        label: 'terror noturno',\r\n      },\r\n      {\r\n        name: 'sonolencia',\r\n        label: 'sonolência',\r\n      },\r\n      {\r\n        name: 'sono_agitado',\r\n        label: 'sono agitado',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'phisycal_symtoms',\r\n    groupLabel: 'Sintomas Físicos',\r\n    subGroups: [\r\n      {\r\n        name: 'vomitos',\r\n        label: 'vômitos',\r\n      },\r\n      {\r\n        name: 'enurese',\r\n        label: 'enurese',\r\n      },\r\n      {\r\n        name: 'encoprese',\r\n        label: 'encoprese',\r\n      },\r\n      {\r\n        name: 'retencao',\r\n        label: 'retenção',\r\n      },\r\n      {\r\n        name: 'alergias',\r\n        label: 'alergias',\r\n      },\r\n      {\r\n        name: 'dores',\r\n        label: 'dores',\r\n      },\r\n      {\r\n        name: 'taquicardia',\r\n        label: 'taquicardia',\r\n      },\r\n      {\r\n        name: 'sudorese',\r\n        label: 'sudorese',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'food_weight_changes',\r\n    groupLabel: 'Alterações nos Padrões Alimentares e na Imagem Corporal',\r\n    subGroups: [\r\n      {\r\n        name: 'restricao_ou_compulsao_alimentar',\r\n        label: 'restrição ou compulsão alimentar',\r\n      },\r\n      {\r\n        name: 'aumento_ou_perda_de_peso',\r\n        label: 'aumento ou perda de peso',\r\n      },\r\n      {\r\n        name: 'pica',\r\n        label: 'pica',\r\n      },\r\n      {\r\n        name: 'recusa_ou_seletividade_alimentar',\r\n        label: 'recusa ou seletividade alimentar',\r\n      },\r\n      {\r\n        name: 'vomito',\r\n        label: 'vômito',\r\n      },\r\n      {\r\n        name: 'excesso_de_exercicio',\r\n        label: 'excesso de exercício',\r\n      },\r\n      {\r\n        name: 'distorcao_da_imagem_corporal',\r\n        label: 'distorção da imagem corporal',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'addictive_behaviot',\r\n    groupLabel: 'Comportamento Adictivo',\r\n    subGroups: [\r\n      {\r\n        name: 'uso_ou_abuso_de_substancias',\r\n        label: 'uso ou abuso de substâncias',\r\n      },\r\n      {\r\n        name: 'uso_excessivo_ou_dependencia_de_tecnologias',\r\n        label: 'uso excessivo ou dependência de tecnologias',\r\n      },\r\n    ],\r\n  },\r\n];\r\n\r\nconst hypotesisList = [\r\n  {\r\n    name: 'F00_F09',\r\n    label: 'F00 - F09 Transtornos mentais orgânicos, inclusive os sintomáticos',\r\n  },\r\n  {\r\n    name: 'F10_F19',\r\n    label:\r\n      'F10 - F19 Transtornos mentais e comportamentais devido ao uso de substâncias',\r\n  },\r\n  {\r\n    name: 'F20_F29',\r\n    label:\r\n      'F20 - F29 Esquizofrenia, transtornos esquizotípicos e transtornos delirantes',\r\n  },\r\n  {\r\n    name: 'F30_F39',\r\n    label: 'F30 - F39 Transtornos do humor (afetivos)',\r\n  },\r\n  {\r\n    name: 'F40_F48',\r\n    label:\r\n      'F40 - F48 Transtornos neuróticos, transtornos relacionados com o “stress',\r\n  },\r\n  {\r\n    name: 'F50_F59',\r\n    label:\r\n      'F50 - F59 Síndromes comportamentais associadas a disfunção fisiológicos',\r\n  },\r\n  {\r\n    name: 'F60_F69',\r\n    label:\r\n      'F60 - F69 Transtornos de personalidade e do comportamento do adulto (somente para pacientes maiores de 18 anos)',\r\n  },\r\n  {\r\n    name: 'F70_F79',\r\n    label: 'F70 - F79 Retardo Mental',\r\n  },\r\n  {\r\n    name: 'F80_F89',\r\n    label: 'F80 - F89 Transtornos do desenvolvimento psicológico',\r\n  },\r\n  {\r\n    name: 'F90_F98',\r\n    label:\r\n      'F90 - F98 Transtornos do comportamento e transtornos emocionais que aparecem habitualmente durante a infância',\r\n  },\r\n  {\r\n    name: 'F_OTHERS',\r\n    label: 'Outros diagnósticos não citados acima',\r\n  },\r\n  {\r\n    name: 'F_Z',\r\n    label:\r\n      'Outras condições frequentemente associadas a transtornos mentais e de comportamentais (Z)',\r\n  },\r\n];\r\n\r\nconst ScreeningForm: React.FC = () => {\r\n  const api = useAxios();\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [open, setOpen] = useState(false);\r\n  const [loading, setLoading] = useState(true);\r\n  const screeningFormRef = useRef<FormHandles>(null);\r\n  const [proUsers, setProUsers] = useState<SelectProps[]>([]);\r\n  const [coordUsers, setCoordUsers] = useState<SelectProps[]>([]);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [date, setDate] = useState(new Date());\r\n  const [date_social, setDateSocial] = useState(new Date());\r\n  const [patient_birth, setPatientBirth] = useState(new Date());\r\n  const [professionals, setProfessionals] = useState<SelectProps[]>([]);\r\n  const [coordinators, setCoordinators] = useState<SelectProps[]>([]);\r\n\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          if (formResponse?.data) {\r\n            setDateSocial(\r\n              formResponse?.data.answers.date_socal\r\n                ? moment(formResponse?.data.answers.date_social).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          if (formResponse?.data) {\r\n            setPatientBirth(\r\n              formResponse?.data.answers.patient_birth\r\n                ? moment(formResponse?.data.answers.patient_birth).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleClickOpen = useCallback(async () => {\r\n    setLoading(true);\r\n    resetAlert();\r\n\r\n    try {\r\n      const usersResponse = await api.current?.get('/users');\r\n\r\n      if (usersResponse?.data) {\r\n        setProUsers(\r\n          usersResponse.data\r\n            .filter(\r\n              (user: User) =>\r\n                !user.attributes ||\r\n                (user.attributes && !user.attributes.coordenador),\r\n            )\r\n            .map((user: User) => ({\r\n              value: user.id,\r\n              label: `${user.firstName} ${user.lastName}`,\r\n            })),\r\n        );\r\n\r\n        setCoordUsers(\r\n          usersResponse.data\r\n            .filter(\r\n              (user: User) =>\r\n                user.attributes &&\r\n                user.attributes.coordenador &&\r\n                user.attributes.coordenador[0] === 'true',\r\n            )\r\n            .map((user: User) => ({\r\n              value: user.id,\r\n              label: `${user.firstName} ${user.lastName}`,\r\n            })),\r\n        );\r\n      }\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Dados de formuário carregados com sucesso.',\r\n      });\r\n    } catch (error) {\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'error',\r\n        message: 'Erro ao carregar dados.',\r\n      });\r\n    } finally {\r\n      setOpen(true);\r\n      setLoading(false);\r\n    }\r\n  }, [api]);\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleSave = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        setForm({ ...form, answers: data } as FormModel);\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n        data.patient_birth = moment(patient_birth).format('YYYY-MM-DD');\r\n        if (data.date_social)\r\n          data.social_date = moment(date).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'screening',\r\n          title: 'Parecer da Equipe de Triagem',\r\n          // patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        setForm({ ...form, answers: data } as FormModel);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Parecer salvo com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar parecer.',\r\n          });\r\n        }\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [api, record, patient_birth, formId, date, form, signatures],\r\n  );\r\n\r\n  const handleSubmitScreening = useCallback(async () => {\r\n    try {\r\n      resetAlert();\r\n      if (!professionals.length && !coordinators.length) {\r\n        throw new Error('Preencha ao menos um terapeuta.');\r\n      }\r\n\r\n      await api.current?.patch(`/records/${id}`, {\r\n        professional_id: [\r\n          ...professionals.map((pro) => pro.value),\r\n          ...coordinators.map((coord) => coord.value),\r\n        ],\r\n        professional: [\r\n          ...professionals.map((pro) => pro.label),\r\n          ...coordinators.map((coord) => coord.label),\r\n        ],\r\n      });\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Triagem realizada com sucesso.',\r\n      });\r\n      handleClose();\r\n\r\n      history.push(`/prontuarios/${id}`);\r\n    } catch (error) {\r\n      if (error.message === 'Preencha ao menos um terapeuta.') {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: error.message,\r\n        });\r\n      } else {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao realizar triagem.',\r\n        });\r\n      }\r\n    }\r\n  }, [api, history, id, professionals, coordinators]);\r\n\r\n  const handleProfessionalSelect = (list: any) => {\r\n    setProfessionals(list);\r\n  };\r\n\r\n  const handleCoordinatorSelect = (list: any) => {\r\n    setCoordinators(list);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      <Dialog\r\n        open={open}\r\n        onClose={handleClose}\r\n        aria-labelledby=\"form-dialog-title\"\r\n        fullWidth\r\n      >\r\n        <Form ref={screeningFormRef} onSubmit={handleSubmitScreening}>\r\n          <DialogTitle id=\"form-dialog-title\">Encaminhamento</DialogTitle>\r\n\r\n          <Grid item xs={12}>\r\n            <Divider />\r\n          </Grid>\r\n\r\n          <DialogContent style={{ minHeight: '40vh' }}>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Selecione um ou mais terapeutas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <ReactSelect\r\n                  closeMenuOnSelect={false}\r\n                  isMulti\r\n                  options={proUsers}\r\n                  onChange={handleProfessionalSelect}\r\n                  menuPosition=\"fixed\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12}>\r\n                <Divider />\r\n              </Grid>\r\n\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Selecione um ou mais coordenadores\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <ReactSelect\r\n                  closeMenuOnSelect={false}\r\n                  isMulti\r\n                  options={coordUsers}\r\n                  onChange={handleCoordinatorSelect}\r\n                  menuPosition=\"fixed\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n          <DialogActions>\r\n            <Button onClick={handleClose}>Cancelar</Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog>\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers || { record: record?.number }}\r\n          onSubmit={handleSave}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              PARECER DA EQUIPE DE TRIAGEM\r\n            </Typography>\r\n            <Typography\r\n              variant=\"subtitle1\"\r\n              component=\"span\"\r\n              align=\"center\"\r\n              className={classes.formSubTitles}\r\n            >\r\n              (preenchido pela triagem)\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={4}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data da Triagem\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date}\r\n                    onChange={(d) => setDate(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n\r\n              <Grid item xs={4} />\r\n\r\n              <Grid item xs={4}>\r\n                <CustomCheckbox\r\n                  name=\"social_service\"\r\n                  value=\"social_service\"\r\n                  label=\"Av.Serviço Social\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"professional\"\r\n                  label=\"Quem realizou a Triagem\"\r\n                  name=\"professional\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={2} />\r\n\r\n              <Grid item xs={4}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date_social}\r\n                    onChange={(d) => setDateSocial(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n\r\n              <Grid item xs={8} />\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"amount\"\r\n                  label=\"Valor\"\r\n                  name=\"amount\"\r\n                  placeholder=\"R$\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Dados de Identificação\r\n                </FormLabel>\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                <Input id=\"patient_name\" label=\"Nome\" name=\"patient_name\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input id=\"patient_age\" label=\"Idade\" name=\"patient_age\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input id=\"patient_gender\" label=\"Sexo\" name=\"patient_gender\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data de Nascimento\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={patient_birth}\r\n                    onChange={(d) => setPatientBirth(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Indicação de Tratamento\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"test_psyco\"\r\n                  value=\"test_psyco\"\r\n                  label=\"Avaliação Psicoterápica\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"food\"\r\n                  value=\"food\"\r\n                  label=\"Setor de transtornos alimentares\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"body_clinic\"\r\n                  value=\"body_clinic\"\r\n                  label=\"Corpo clínico\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"psyco_area\"\r\n                  value=\"psyco_area\"\r\n                  label=\"Setor de psicodiagnóstico\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"env_terapy\"\r\n                  value=\"env_terapy\"\r\n                  label=\"Ambientoterapia\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"kid_area\"\r\n                  value=\"kid_area\"\r\n                  label=\"Setor de psicopedagogia\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"adoption\"\r\n                  value=\"adoption\"\r\n                  label=\"Setor de adoção\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"fono\"\r\n                  value=\"fono\"\r\n                  label=\"Setor de fonoaudiologia\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"parents\"\r\n                  value=\"parents\"\r\n                  label=\"Setor de atendimento a pais\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"other_place\"\r\n                  value=\"other_place\"\r\n                  label=\"Para outro local\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"early\"\r\n                  value=\"early\"\r\n                  label=\"Setor de intervenções precoces\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"which_area\" label=\"Qual?\" name=\"which_area\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={12} />\r\n              <Grid item xs={12} />\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"professional_name\"\r\n                  label=\"Nome do Terapeuta\"\r\n                  name=\"professional_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"professional_schedule\"\r\n                  label=\"Disponibilidade de horários/turnos para atendimento\"\r\n                  name=\"professional_schedule\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"interview_date\"\r\n                  label=\"Entrevista marcada para dia\"\r\n                  name=\"interview_date\"\r\n                  placeholder=\"____/____/_______\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"interview_hour\"\r\n                  label=\"Horário\"\r\n                  name=\"interview_hour\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"interview_price\"\r\n                  label=\"Valor da consulta\"\r\n                  name=\"interview_price\"\r\n                  placeholder=\"R$\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Dados Coletados Durante a Triagem\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  1) Impressão Geral Transmitida pelo Paciente e/ou Familiar(es)\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"overview\"\r\n                  label=\"(descrição das primeiras impressões do paciente e da família:\r\n                    quem compareceu, aspectos físicos, humor, comportamento,\r\n                    cuidados pessoais, modo de agir e se expressar. Sentimentos\r\n                    despertados no entrevistador)\"\r\n                  name=\"overview\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  2) Motivo da Consulta\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"(motivos descritos pelo paciente e família para a busca de atendimento)\"\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  3) Aspectos Familiares\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"family\"\r\n                  label=\"(o que envolve o paciente e sua família: com quem mora, relacionamento com os pais e irmãos, relacionamento entre os pais, rede de apoio, problemas familiares, etc…)\"\r\n                  name=\"family\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  4) Aspectos Escolares\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"school\"\r\n                  label=\"(questões relacionadas à aprendizagem, repetências, relacionamento com colegas e professores, mudanças de escola, etc…)\"\r\n                  name=\"school\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  5) História Pregressa\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"history\"\r\n                  label=\"(informações fornecidas pela família sobre a história do paciente e/ou família, questões do desenvolvimento, situações importantes da vida do paciente)\"\r\n                  name=\"history\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  6) Tratamentos Anteriores\r\n                </FormLabel>\r\n\r\n                <Grid container spacing={2}>\r\n                  {historyItems.map((item) => (\r\n                    <>\r\n                      <Grid item xs={4}>\r\n                        <CustomCheckbox\r\n                          name={`with_${item.name}`}\r\n                          value={`with_${item}`}\r\n                          label={item.label}\r\n                        />\r\n                      </Grid>\r\n\r\n                      <Grid item xs={4}>\r\n                        <Input\r\n                          id={`which_${item.name}`}\r\n                          label=\"Quem?\"\r\n                          name={`which_${item.name}`}\r\n                        />\r\n                      </Grid>\r\n\r\n                      <Grid item xs={4}>\r\n                        <Input\r\n                          id={`when_${item.name}`}\r\n                          label=\"Quando?\"\r\n                          name={`when_${item.name}`}\r\n                        />\r\n                      </Grid>\r\n                    </>\r\n                  ))}\r\n                </Grid>\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  7) Uso de medicação\r\n                </FormLabel>\r\n\r\n                <Grid item xs={12}>\r\n                  <CustomCheckbox\r\n                    name=\"no_medication\"\r\n                    value=\"no_medication\"\r\n                    label=\"Não\"\r\n                  />\r\n                </Grid>\r\n\r\n                <Grid container spacing={1}>\r\n                  <Grid item xs={12}>\r\n                    <CustomCheckbox\r\n                      name=\"yes_currently\"\r\n                      value=\"yes_currently\"\r\n                      label=\"Sim, atualmente faz uso\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={6}>\r\n                    <Input\r\n                      id=\"which_yes_currently\"\r\n                      label=\"Qual?\"\r\n                      name=\"which_yes_currently\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={6}>\r\n                    <Input\r\n                      id=\"when_yes_currently\"\r\n                      label=\"Desde quando?\"\r\n                      name=\"when_yes_currently\"\r\n                    />\r\n                  </Grid>\r\n                </Grid>\r\n\r\n                <Grid container spacing={1}>\r\n                  <Grid item xs={12}>\r\n                    <CustomCheckbox\r\n                      name=\"yes_in_the_past\"\r\n                      value=\"yes_in_the_past\"\r\n                      label=\"Sim, fez uso anteriormente\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={6}>\r\n                    <Input\r\n                      id=\"which_yes_in_the_past\"\r\n                      label=\"Qual?\"\r\n                      name=\"which_yes_in_the_past\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={6}>\r\n                    <Input\r\n                      id=\"when_yes_in_the_past\"\r\n                      label=\"Quando?\"\r\n                      name=\"when_yes_in_the_past\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={12}>\r\n                    <Input\r\n                      id=\"orientation_yes_in_the_past\"\r\n                      label=\"Qual foi a indicação ou diagnóstico?\"\r\n                      name=\"orientation_yes_in_the_past\"\r\n                    />\r\n                  </Grid>\r\n                </Grid>\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  8) Compreensão Psicodinâmica\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"understanding\"\r\n                  label=\"(compreensão da situação clínica e da dinâmica do funcionamento do paciente e família)\"\r\n                  name=\"understanding\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  9) Outras informações obtidas e/ou observadas\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"observations\"\r\n                  label=\"Observações\"\r\n                  name=\"observations\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  10) Recomendações para avaliações adicionais\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"recomendation\"\r\n                  label=\"(sugestões da equipe de triagem para realização de consultorias familiar/ adoção/ proteção/ transtornos alimentares, etc e/ ou futuros encaminhamentos para o paciente e família)\"\r\n                  name=\"recomendation\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  11) Lista de Sintoma\r\n                </FormLabel>\r\n                <br />\r\n                <span>\r\n                  (Padronizada conforme comissão de pesquisa do CEAPIA -\r\n                  referente aos dados levantados nos prontuários ao longo dos 40\r\n                  anos)\r\n                </span>\r\n                <br />\r\n                <br />\r\n                <span>\r\n                  <b>\r\n                    Marque o(s) grupo(s) de sintomas que mais se encaixam com o\r\n                    paciente e também o sintoma identificado.\r\n                  </b>\r\n                </span>\r\n\r\n                <FormControl fullWidth className={classes.formControl}>\r\n                  <Divider className={classes.divider} />\r\n                </FormControl>\r\n\r\n                {symtomsList.map((group) => (\r\n                  <>\r\n                    <Grid container spacing={2}>\r\n                      <Grid item xs={12} className={classes.groupTitle}>\r\n                        <CustomCheckbox\r\n                          name={group.groupName}\r\n                          value={group.groupName}\r\n                          label={group.groupLabel}\r\n                        />\r\n                      </Grid>\r\n\r\n                      {group.subGroups &&\r\n                        group.subGroups.map((subgroup) => (\r\n                          <Grid item xs={4}>\r\n                            <CustomCheckbox\r\n                              name={`${group.groupName}_${subgroup.name}`}\r\n                              value={`${group.groupName}_${subgroup.name}`}\r\n                              label={subgroup.label}\r\n                            />\r\n                          </Grid>\r\n                        ))}\r\n                    </Grid>\r\n\r\n                    <FormControl fullWidth className={classes.formControl}>\r\n                      <Divider className={classes.divider} />\r\n                    </FormControl>\r\n                  </>\r\n                ))}\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <Grid item xs={12}>\r\n            <FormLabel className={classes.formTitles}>\r\n              12) Hipóteses diagnósticas\r\n            </FormLabel>\r\n\r\n            <span> (Conforme o CID 10)</span>\r\n\r\n            <br />\r\n            <br />\r\n\r\n            <span>\r\n              (Hipótese diagnóstica de acordo com os sintomas apresentados e\r\n              descritos no momento da triagem. Marque o grupo diagnóstico abaixo\r\n              e se possível, especifique a categoria)\r\n            </span>\r\n\r\n            <br />\r\n\r\n            <Grid container spacing={2}>\r\n              {hypotesisList.map((item) => (\r\n                <>\r\n                  <FormControl fullWidth className={classes.formControl}>\r\n                    <Divider className={classes.divider} />\r\n                  </FormControl>\r\n\r\n                  <Grid item xs={6}>\r\n                    <CustomCheckbox\r\n                      name={item.name}\r\n                      value={item.name}\r\n                      label={item.label}\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={6}>\r\n                    <Input\r\n                      id={`specify_${item.name}`}\r\n                      label=\"Especifique\"\r\n                      name={`specify_${item.name}`}\r\n                    />\r\n                  </Grid>\r\n                </>\r\n              ))}\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            {/* <Divider className={classes.divider} /> */}\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Salvar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button\r\n                  onClick={() => handleClickOpen()}\r\n                  style={{ background: green[700], color: 'white' }}\r\n                  variant=\"contained\"\r\n                >\r\n                  Encaminhar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <a\r\n                  href={`/prontuarios/${record?._id}/formularios/encerramento-atendimento`}\r\n                  style={{\r\n                    background: red[700],\r\n                    color: 'white',\r\n                    outline: 'none',\r\n                    textDecoration: 'none',\r\n                  }}\r\n                >\r\n                  <Button\r\n                    onClick={() => console.log('Encerrar')}\r\n                    style={{ background: red[700], color: 'white' }}\r\n                    variant=\"contained\"\r\n                  >\r\n                    Encerrar\r\n                  </Button>\r\n                </a>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default ScreeningForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n  Button,\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  DialogTitle,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { green, red } from '@material-ui/core/colors';\r\nimport ReactSelect from 'react-select';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport CustomCheckbox from '../../../components/Checkbox';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport { SelectProps } from '../../Records/List/dto';\r\nimport { User } from '../../../models/user';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formSubTitles: {\r\n    fontWeight: 'normal',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n  groupTitle: {\r\n    display: 'flex',\r\n    '& span': {\r\n      fontWeight: 'bolder',\r\n    },\r\n  },\r\n}));\r\n\r\nconst historyItems = [\r\n  {\r\n    name: 'psychologist',\r\n    label: 'Com Psicólogo',\r\n  },\r\n  {\r\n    name: 'psychiatrist',\r\n    label: 'Com Psiquiatra',\r\n  },\r\n  {\r\n    name: 'neuro',\r\n    label: 'Com Neurologista',\r\n  },\r\n  {\r\n    name: 'fono',\r\n    label: 'Com Fonoaudiólogo',\r\n  },\r\n  {\r\n    name: 'psychopedagogue',\r\n    label: 'Com Psicopedagogo',\r\n  },\r\n  {\r\n    name: 'other',\r\n    label: 'Outros',\r\n  },\r\n];\r\n\r\nconst symtomsList = [\r\n  {\r\n    groupName: 'depression_symptoms',\r\n    groupLabel: 'Sintomas Depressivos',\r\n    subGroups: [\r\n      {\r\n        name: 'tristeza_excessiva_e_prolongada',\r\n        label: 'tristeza excessiva e prolongada',\r\n      },\r\n      {\r\n        name: 'choro',\r\n        label: 'choro',\r\n      },\r\n      {\r\n        name: 'desmotivacao',\r\n        label: 'desmotivação',\r\n      },\r\n      {\r\n        name: 'apatia',\r\n        label: 'apatia',\r\n      },\r\n      {\r\n        name: 'perda_de_interesse_por_atividades',\r\n        label: 'perda de interesse por atividades',\r\n      },\r\n      {\r\n        name: 'baixa_autoestima',\r\n        label: 'baixa autoestima',\r\n      },\r\n      {\r\n        name: 'isolamento',\r\n        label: 'isolamento',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'school_difficulties',\r\n    groupLabel: 'Dificuldades Relacionadas à Aprendizagem ou Escolares',\r\n    subGroups: [\r\n      {\r\n        name: 'dificuldade_na_aprendizagem',\r\n        label: 'dificuldade na aprendizagem',\r\n      },\r\n      {\r\n        name: 'baixo_rendimento_escolar',\r\n        label: 'baixo rendimento escolar',\r\n      },\r\n      {\r\n        name: 'evasao_escolar',\r\n        label: 'evasão/abandono escolar',\r\n      },\r\n      {\r\n        name: 'repetencia',\r\n        label: 'repetência',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'development_delay',\r\n    groupLabel: 'Atrasos no Desenvolvimento',\r\n    subGroups: [\r\n      {\r\n        name: 'atraso_na_linguagem',\r\n        label: 'atraso na linguagem',\r\n      },\r\n      {\r\n        name: 'motricidade',\r\n        label: 'motricidade',\r\n      },\r\n      {\r\n        name: 'imaturidade',\r\n        label: 'imaturidade',\r\n      },\r\n      {\r\n        name: 'comportamento_regressivo',\r\n        label: 'comportamento regressivo',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'humor_change',\r\n    groupLabel: 'Oscilações de Humor',\r\n    subGroups: [\r\n      {\r\n        name: 'labilidade',\r\n        label: 'labilidade',\r\n      },\r\n      {\r\n        name: 'oscilacao',\r\n        label: 'oscilação',\r\n      },\r\n      {\r\n        name: 'instabilidade',\r\n        label: 'instabilidade',\r\n      },\r\n      {\r\n        name: 'disforia',\r\n        label: 'disforia',\r\n      },\r\n      {\r\n        name: 'embotamento',\r\n        label: 'embotamento',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'intelligence_changes',\r\n    groupLabel: 'Alterações nos Padrões de Inteligência',\r\n    subGroups: [\r\n      {\r\n        name: 'altas_habilidades',\r\n        label: 'altas habilidades',\r\n      },\r\n      {\r\n        name: 'atraso_cognitivo',\r\n        label: 'atraso cognitivo',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'speech_changes',\r\n    groupLabel: 'Alterações nos Padrões de Fala',\r\n    subGroups: [\r\n      {\r\n        name: 'gagueira',\r\n        label: 'gagueira',\r\n      },\r\n      {\r\n        name: 'mutismo',\r\n        label: 'mutismo',\r\n      },\r\n      {\r\n        name: 'ecolalia',\r\n        label: 'ecolalia',\r\n      },\r\n      {\r\n        name: 'dislalia',\r\n        label: 'dislalia',\r\n      },\r\n      {\r\n        name: 'atraso na fala',\r\n        label: 'atraso na fala',\r\n      },\r\n      {\r\n        name: 'fala_estereotipada',\r\n        label: 'fala estereotipada',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'ansiety_symtoms',\r\n    groupLabel: 'Sintomas de Ansiedade',\r\n    subGroups: [\r\n      {\r\n        name: 'ansiedade_de_separação',\r\n        label: 'ansiedade de separação',\r\n      },\r\n      {\r\n        name: 'crise_de_panico',\r\n        label: 'crise de pânico',\r\n      },\r\n      {\r\n        name: 'masturbacao_excessiva',\r\n        label: 'masturbação excessiva',\r\n      },\r\n      {\r\n        name: 'comportamento_fobicos',\r\n        label: 'comportamento fóbicos',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'attention_changes',\r\n    groupLabel: 'Alterações nos Padrões de Atenção',\r\n    subGroups: [\r\n      {\r\n        name: 'desatencao',\r\n        label: 'desatenção',\r\n      },\r\n      {\r\n        name: 'distracao',\r\n        label: 'distração',\r\n      },\r\n      {\r\n        name: 'dificuldade_de_concentracao',\r\n        label: 'dificuldade de concentração',\r\n      },\r\n      {\r\n        name: 'hipo_ou_hipervigil',\r\n        label: 'hipo ou hipervigil',\r\n      },\r\n      {\r\n        name: 'hiper_ou_hipotenaz',\r\n        label: 'hiper ou hipotenaz',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'perception_changes',\r\n    groupLabel: 'Alterações nos Padrões de Sensopercepção',\r\n    subGroups: [\r\n      {\r\n        name: 'hipo_ou_hiper_sensível_a_toques',\r\n        label: 'desatenção',\r\n      },\r\n      {\r\n        name: 'cheiros',\r\n        label: 'cheiros',\r\n      },\r\n      {\r\n        name: 'barulhos',\r\n        label: 'barulhos',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'obsessive_behavior',\r\n    groupLabel: 'Comportamento Obsessivo',\r\n    subGroups: [\r\n      {\r\n        name: 'pensamentos_obsessivos',\r\n        label: 'pensamentos obsessivos',\r\n      },\r\n      {\r\n        name: 'rituais',\r\n        label: 'rituais',\r\n      },\r\n      {\r\n        name: 'manias',\r\n        label: 'manias',\r\n      },\r\n      {\r\n        name: 'riso_imotivado',\r\n        label: 'riso imotivado',\r\n      },\r\n      {\r\n        name: 'preocupacoes_excessivas_com_limpeza',\r\n        label: 'preocupações excessivas com limpeza',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'memory_changes',\r\n    groupLabel: 'Alterações nos Padrões de Memória',\r\n    subGroups: [\r\n      {\r\n        name: 'prejuizos',\r\n        label: 'prejuízos',\r\n      },\r\n      {\r\n        name: 'esquecimento',\r\n        label: 'esquecimento (recente ou remota)',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'stereotyped_behavior',\r\n    groupLabel: 'Comportamento Estereotipado',\r\n    subGroups: [\r\n      {\r\n        name: 'tiques',\r\n        label: 'tiques',\r\n      },\r\n      {\r\n        name: 'flapping',\r\n        label: 'flapping',\r\n      },\r\n      {\r\n        name: 'comportamento_repetitivos_ou_bizarros',\r\n        label: 'comportamento repetitivos ou bizarros',\r\n      },\r\n      {\r\n        name: 'estereotipia',\r\n        label: 'estereotipia',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'aggressiveness',\r\n    groupLabel: 'Agressividade',\r\n    subGroups: [\r\n      {\r\n        name: 'brigas',\r\n        label: 'brigas',\r\n      },\r\n      {\r\n        name: 'aggression',\r\n        label: 'agressão (auto e hetero)',\r\n      },\r\n      {\r\n        name: 'automutilacao',\r\n        label: 'automutilação',\r\n      },\r\n      {\r\n        name: 'risco_de_suicidio',\r\n        label: 'risco de suicídio',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'movement_changes',\r\n    groupLabel: 'Alterações nos Padrões Motores',\r\n    subGroups: [\r\n      {\r\n        name: 'agitation',\r\n        label: 'agitação (inclusive psicomotora)',\r\n      },\r\n      {\r\n        name: 'hipotonia',\r\n        label: 'hipotonia',\r\n      },\r\n      {\r\n        name: 'catatonia',\r\n        label: 'catatonia',\r\n      },\r\n      {\r\n        name: 'inquietacao',\r\n        label: 'inquietação',\r\n      },\r\n      {\r\n        name: 'hiperatividade',\r\n        label: 'hiperatividade',\r\n      },\r\n      {\r\n        name: 'dificuldades_motoras',\r\n        label: 'dificuldades motoras',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'fear_behavior',\r\n    groupLabel: 'Comportamento Receoso / Temeroso',\r\n    subGroups: [\r\n      {\r\n        name: 'inseguranca',\r\n        label: 'insegurança',\r\n      },\r\n      {\r\n        name: 'timidez_excessiva',\r\n        label: 'timidez excessiva',\r\n      },\r\n      {\r\n        name: 'medo_excessivo',\r\n        label: 'medo_excessivo',\r\n      },\r\n      {\r\n        name: 'retraimento',\r\n        label: 'retraimento',\r\n      },\r\n      {\r\n        name: 'desconfianca',\r\n        label: 'desconfiança',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'anti_social_behavior',\r\n    groupLabel: 'Comportamento Opositor ou Antisocial',\r\n    subGroups: [\r\n      {\r\n        name: 'dificuldade_com_limites',\r\n        label: 'dificuldade com limites',\r\n      },\r\n      {\r\n        name: 'conduta_opositora',\r\n        label: 'conduta opositora',\r\n      },\r\n      {\r\n        name: 'desafiador',\r\n        label: 'desafiador',\r\n      },\r\n      {\r\n        name: 'fuga',\r\n        label: 'fuga',\r\n      },\r\n      {\r\n        name: 'mentiras',\r\n        label: 'mentiras',\r\n      },\r\n      {\r\n        name: 'furtos',\r\n        label: 'furtos',\r\n      },\r\n      {\r\n        name: 'maltrato_com_animais',\r\n        label: 'maltrato com animais',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'orientation_changes',\r\n    groupLabel: 'Alterações nos Padrões de Orientação',\r\n    subGroups: [\r\n      {\r\n        name: 'dificuldade_na_organização_espacial',\r\n        label: 'dificuldade na organização espacial',\r\n      },\r\n      {\r\n        name: 'temporal',\r\n        label: 'temporal',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'dependency_changes',\r\n    groupLabel: 'Alterações nos Padrões de Dependência - Independência',\r\n    subGroups: [\r\n      {\r\n        name: 'coleito',\r\n        label: 'coleito',\r\n      },\r\n      {\r\n        name: 'simbiose',\r\n        label: 'simbiose',\r\n      },\r\n      {\r\n        name: 'dependencia_materna/paterna',\r\n        label: 'dependência materna/paterna',\r\n      },\r\n      {\r\n        name: 'dificuldade_para_fica_ sozinho',\r\n        label: 'dificuldade para ficar sozinho',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'impulsive_behavior',\r\n    groupLabel: 'Comportamento Impulsivo',\r\n    subGroups: [\r\n      {\r\n        name: 'descontrole_de_impulsos',\r\n        label: 'exposição a situações de riscos',\r\n      },\r\n      {\r\n        name: 'exposicao_a_situacoes_de_riscos',\r\n        label: 'exposição a situações de riscos',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'thinking_changes',\r\n    groupLabel: 'Alterações nos Padrões de Pensamento e Consciência',\r\n    subGroups: [\r\n      {\r\n        name: 'fuga_de_ideias',\r\n        label: 'fuga de ideias',\r\n      },\r\n      {\r\n        name: 'pensamento_concreto',\r\n        label: 'pensamento concreto',\r\n      },\r\n      {\r\n        name: 'agitacao_psicomotora',\r\n        label: 'agitação psicomotora',\r\n      },\r\n      {\r\n        name: 'pensamento_desorganizado_ou_confuso',\r\n        label: 'pensamento desorganizado ou confuso',\r\n      },\r\n      {\r\n        name: 'falta_de_juizo_critico',\r\n        label: 'falta de juízo crítico',\r\n      },\r\n      {\r\n        name: 'alucinacoes',\r\n        label: 'alucinações',\r\n      },\r\n      {\r\n        name: 'delirios',\r\n        label: 'delírios',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'relationship_changes',\r\n    groupLabel: 'Alterações nos Padrões de Relacionamentos',\r\n    subGroups: [\r\n      {\r\n        name: 'social_difficulties',\r\n        label: 'dificuldade de socialização ou de interação ex: não ter amigos',\r\n      },\r\n      {\r\n        name: 'isolamento',\r\n        label: 'isolamento',\r\n      },\r\n      {\r\n        name: 'prejuizos_nas_relacoes_familiares',\r\n        label: 'prejuízos nas relações familiares',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'frustation_tolerancy',\r\n    groupLabel: 'Baixa Tolerância à Frustração',\r\n  },\r\n  {\r\n    groupName: 'sleep_changes',\r\n    groupLabel: 'Alterações nos Padrões de Sono',\r\n    subGroups: [\r\n      {\r\n        name: 'insonia',\r\n        label: 'insônia',\r\n      },\r\n      {\r\n        name: 'dificuldade_para_dormir',\r\n        label: 'dificuldade para dormir',\r\n      },\r\n      {\r\n        name: 'sonambulismo',\r\n        label: 'sonambulismo',\r\n      },\r\n      {\r\n        name: 'terror_noturno',\r\n        label: 'terror noturno',\r\n      },\r\n      {\r\n        name: 'sonolencia',\r\n        label: 'sonolência',\r\n      },\r\n      {\r\n        name: 'sono_agitado',\r\n        label: 'sono agitado',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'phisycal_symtoms',\r\n    groupLabel: 'Sintomas Físicos',\r\n    subGroups: [\r\n      {\r\n        name: 'vomitos',\r\n        label: 'vômitos',\r\n      },\r\n      {\r\n        name: 'enurese',\r\n        label: 'enurese',\r\n      },\r\n      {\r\n        name: 'encoprese',\r\n        label: 'encoprese',\r\n      },\r\n      {\r\n        name: 'retencao',\r\n        label: 'retenção',\r\n      },\r\n      {\r\n        name: 'alergias',\r\n        label: 'alergias',\r\n      },\r\n      {\r\n        name: 'dores',\r\n        label: 'dores',\r\n      },\r\n      {\r\n        name: 'taquicardia',\r\n        label: 'taquicardia',\r\n      },\r\n      {\r\n        name: 'sudorese',\r\n        label: 'sudorese',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'food_weight_changes',\r\n    groupLabel: 'Alterações nos Padrões Alimentares e na Imagem Corporal',\r\n    subGroups: [\r\n      {\r\n        name: 'restricao_ou_compulsao_alimentar',\r\n        label: 'restrição ou compulsão alimentar',\r\n      },\r\n      {\r\n        name: 'aumento_ou_perda_de_peso',\r\n        label: 'aumento ou perda de peso',\r\n      },\r\n      {\r\n        name: 'pica',\r\n        label: 'pica',\r\n      },\r\n      {\r\n        name: 'recusa_ou_seletividade_alimentar',\r\n        label: 'recusa ou seletividade alimentar',\r\n      },\r\n      {\r\n        name: 'vomito',\r\n        label: 'vômito',\r\n      },\r\n      {\r\n        name: 'excesso_de_exercicio',\r\n        label: 'excesso de exercício',\r\n      },\r\n      {\r\n        name: 'distorcao_da_imagem_corporal',\r\n        label: 'distorção da imagem corporal',\r\n      },\r\n    ],\r\n  },\r\n  {\r\n    groupName: 'addictive_behaviot',\r\n    groupLabel: 'Comportamento Adictivo',\r\n    subGroups: [\r\n      {\r\n        name: 'uso_ou_abuso_de_substancias',\r\n        label: 'uso ou abuso de substâncias',\r\n      },\r\n      {\r\n        name: 'uso_excessivo_ou_dependencia_de_tecnologias',\r\n        label: 'uso excessivo ou dependência de tecnologias',\r\n      },\r\n    ],\r\n  },\r\n];\r\n\r\nconst hypotesisList = [\r\n  {\r\n    name: '100',\r\n    label: '100 - Transtorno de Estresse Traumático',\r\n  },\r\n  {\r\n    name: '200',\r\n    label: '200 - Transtorno do Afeto',\r\n  },\r\n  {\r\n    name: '201',\r\n    label: '201 - Transtornos de Ansiedade do bebê e da criança pequena',\r\n  },\r\n  {\r\n    name: '202',\r\n    label: '202 - Transtornos do humor: reação prolongada de perda/pesar',\r\n  },\r\n  {\r\n    name: '203',\r\n    label: '203 - Transtornos do humor: Depressão da infância e Meninice',\r\n  },\r\n  {\r\n    name: '204',\r\n    label: '204 - Transtorno Misto de Expressividade Emocional',\r\n  },\r\n  {\r\n    name: '205',\r\n    label: '205 - Transtornos de Identidade de gênero da Infância',\r\n  },\r\n  {\r\n    name: '206',\r\n    label:\r\n      '206 - Transtorno reativo de privação de vínculo/maus tratos do bebê e da criança pequena',\r\n  },\r\n  {\r\n    name: '300',\r\n    label: '300 - Transtorno de ajustamento',\r\n  },\r\n  {\r\n    name: '400',\r\n    label: '400 - Transtornos regulatórios',\r\n  },\r\n  {\r\n    name: '401',\r\n    label: '401 - Tipo I: Hipersensível',\r\n  },\r\n  {\r\n    name: '402',\r\n    label: '402 - Tipo II: Hiporreativo',\r\n  },\r\n  {\r\n    name: '403',\r\n    label: '403 - Tipo III: Desorganizado do ponto de vista motor, impulsivo',\r\n  },\r\n  {\r\n    name: '404',\r\n    label: '404 - Tipo IV: Outros',\r\n  },\r\n  {\r\n    name: '500',\r\n    label: '500 - Transtorno do comportamento do sono',\r\n  },\r\n  {\r\n    name: '600',\r\n    label: '600 - Transtorno do comportamento alimentar',\r\n  },\r\n  {\r\n    name: '700',\r\n    label:\r\n      '700 - Transtorno de relacionamento e comunicação: Transtorno multissistêmico do desenvolvimento e Transtorno invasivo do desenvolvimento',\r\n  },\r\n];\r\n\r\nconst hypotesistList2 = [\r\n  {\r\n    name: '901',\r\n    label: '901 - Excessivamente envolvido',\r\n  },\r\n  {\r\n    name: '902',\r\n    label: '902 - Pouco envolvido',\r\n  },\r\n  {\r\n    name: '903',\r\n    label: '903 - Ansioso',\r\n  },\r\n  {\r\n    name: '904',\r\n    label: '904 - Irritado / hostil',\r\n  },\r\n  {\r\n    name: '905',\r\n    label: '905 - Misto',\r\n  },\r\n  {\r\n    name: '906',\r\n    label: '906 - Abusivo',\r\n  },\r\n  {\r\n    name: '906a',\r\n    label: '906 a - Verbalmente abusivo',\r\n  },\r\n  {\r\n    name: '906b',\r\n    label: '906 b - Fisicamente abusivo',\r\n  },\r\n  {\r\n    name: '906c',\r\n    label: '906 c - Sexualmente abusivo',\r\n  },\r\n];\r\n\r\nconst hypotesistList3 = [\r\n  {\r\n    name: 'eixo3',\r\n    label: 'Eixo III: Transtorno e Condições Orgânicas e do Desenvolvimento',\r\n  },\r\n];\r\n\r\nconst hypotesistList4 = [\r\n  {\r\n    name: 'eixo4',\r\n    label: 'Eixo IV: Estressores Psicossociais',\r\n  },\r\n];\r\n\r\nconst hypotesistList5 = [\r\n  {\r\n    name: 'eixo5',\r\n    label: 'Eixo V: Nível de Desenvolvimento Emocional Funcional',\r\n  },\r\n\r\n  {\r\n    name: 'eixo5others',\r\n    label: 'Outros diagnósticos não citados acima',\r\n  },\r\n\r\n  {\r\n    name: 'eixo5others2',\r\n    label:\r\n      'Outras condições frequentemente associadas a transtornos mentais e de comportamentais',\r\n  },\r\n];\r\n\r\nconst BabyScreeningForm: React.FC = () => {\r\n  const api = useAxios();\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [open, setOpen] = useState(false);\r\n  const [loading, setLoading] = useState(true);\r\n  const screeningFormRef = useRef<FormHandles>(null);\r\n  const [proUsers, setProUsers] = useState<SelectProps[]>([]);\r\n  const [coordUsers, setCoordUsers] = useState<SelectProps[]>([]);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [date, setDate] = useState(new Date());\r\n  const [date_social, setDateSocial] = useState(new Date());\r\n  const [patient_birth, setPatientBirth] = useState(new Date());\r\n  const [professionals, setProfessionals] = useState<SelectProps[]>([]);\r\n  const [coordinators, setCoordinators] = useState<SelectProps[]>([]);\r\n\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          if (formResponse?.data) {\r\n            setDateSocial(\r\n              formResponse?.data.answers.date_socal\r\n                ? moment(formResponse?.data.answers.date_social).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          if (formResponse?.data) {\r\n            setPatientBirth(\r\n              formResponse?.data.answers.patient_birth\r\n                ? moment(formResponse?.data.answers.patient_birth).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleClickOpen = useCallback(async () => {\r\n    setLoading(true);\r\n    resetAlert();\r\n\r\n    try {\r\n      const usersResponse = await api.current?.get('/users');\r\n\r\n      if (usersResponse?.data) {\r\n        setProUsers(\r\n          usersResponse.data\r\n            .filter(\r\n              (user: User) =>\r\n                !user.attributes ||\r\n                (user.attributes && !user.attributes.coordenador),\r\n            )\r\n            .map((user: User) => ({\r\n              value: user.id,\r\n              label: `${user.firstName} ${user.lastName}`,\r\n            })),\r\n        );\r\n\r\n        setCoordUsers(\r\n          usersResponse.data\r\n            .filter(\r\n              (user: User) =>\r\n                user.attributes &&\r\n                user.attributes.coordenador &&\r\n                user.attributes.coordenador[0] === 'true',\r\n            )\r\n            .map((user: User) => ({\r\n              value: user.id,\r\n              label: `${user.firstName} ${user.lastName}`,\r\n            })),\r\n        );\r\n      }\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Dados de formuário carregados com sucesso.',\r\n      });\r\n    } catch (error) {\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'error',\r\n        message: 'Erro ao carregar dados.',\r\n      });\r\n    } finally {\r\n      setOpen(true);\r\n      setLoading(false);\r\n    }\r\n  }, [api]);\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleSave = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        setForm({ ...form, answers: data } as FormModel);\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n        data.patient_birth = moment(patient_birth).format('YYYY-MM-DD');\r\n        if (data.date_social)\r\n          data.social_date = moment(date).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'babyScreening',\r\n          title: 'Parecer da Equipe de Triagem de Intervenções Precoces',\r\n          // patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        setForm({ ...form, answers: data } as FormModel);\r\n\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'success',\r\n          message: 'Parecer salvo com sucesso.',\r\n        });\r\n      } catch (error) {\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar parecer.',\r\n          });\r\n        }\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    },\r\n    [api, record, patient_birth, formId, date, form, signatures],\r\n  );\r\n\r\n  const handleSubmitScreening = useCallback(async () => {\r\n    try {\r\n      resetAlert();\r\n      if (!professionals.length && !coordinators.length) {\r\n        throw new Error('Preencha ao menos um terapeuta.');\r\n      }\r\n\r\n      await api.current?.patch(`/records/${id}`, {\r\n        professional_id: [\r\n          ...professionals.map((pro) => pro.value),\r\n          ...coordinators.map((coord) => coord.value),\r\n        ],\r\n        professional: [\r\n          ...professionals.map((pro) => pro.label),\r\n          ...coordinators.map((coord) => coord.label),\r\n        ],\r\n      });\r\n\r\n      setAlert({\r\n        isActive: true,\r\n        type: 'success',\r\n        message: 'Triagem realizada com sucesso.',\r\n      });\r\n      handleClose();\r\n\r\n      history.push(`/prontuarios/${id}`);\r\n    } catch (error) {\r\n      if (error.message === 'Preencha ao menos um terapeuta.') {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: error.message,\r\n        });\r\n      } else {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao realizar triagem.',\r\n        });\r\n      }\r\n    }\r\n  }, [api, history, id, professionals, coordinators]);\r\n\r\n  const handleProfessionalSelect = (list: any) => {\r\n    setProfessionals(list);\r\n  };\r\n\r\n  const handleCoordinatorSelect = (list: any) => {\r\n    setCoordinators(list);\r\n  };\r\n\r\n  const renderList = (list: { name: string; label: string }[]) => {\r\n    return list.map((item) => (\r\n      <>\r\n        <FormControl fullWidth className={classes.formControl}>\r\n          <Divider className={classes.divider} />\r\n        </FormControl>\r\n\r\n        <Grid item xs={6}>\r\n          <CustomCheckbox\r\n            name={item.name}\r\n            value={item.name}\r\n            label={item.label}\r\n          />\r\n        </Grid>\r\n\r\n        <Grid item xs={6}>\r\n          <Input\r\n            id={`specify_${item.name}`}\r\n            label=\"Especifique\"\r\n            name={`specify_${item.name}`}\r\n          />\r\n        </Grid>\r\n      </>\r\n    ));\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      <Dialog\r\n        open={open}\r\n        onClose={handleClose}\r\n        aria-labelledby=\"form-dialog-title\"\r\n        fullWidth\r\n      >\r\n        <Form ref={screeningFormRef} onSubmit={handleSubmitScreening}>\r\n          <DialogTitle id=\"form-dialog-title\">Encaminhamento</DialogTitle>\r\n\r\n          <Grid item xs={12}>\r\n            <Divider />\r\n          </Grid>\r\n\r\n          <DialogContent style={{ minHeight: '40vh' }}>\r\n            <Grid container spacing={2} alignItems=\"center\">\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Selecione um ou mais terapeutas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <ReactSelect\r\n                  closeMenuOnSelect={false}\r\n                  isMulti\r\n                  options={proUsers}\r\n                  onChange={handleProfessionalSelect}\r\n                  menuPosition=\"fixed\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12}>\r\n                <Divider />\r\n              </Grid>\r\n\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Selecione um ou mais coordenadores\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <ReactSelect\r\n                  closeMenuOnSelect={false}\r\n                  isMulti\r\n                  options={coordUsers}\r\n                  onChange={handleCoordinatorSelect}\r\n                  menuPosition=\"fixed\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </DialogContent>\r\n          <DialogActions>\r\n            <Button onClick={handleClose}>Cancelar</Button>\r\n            <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n              Salvar\r\n            </Button>\r\n          </DialogActions>\r\n        </Form>\r\n      </Dialog>\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers || { record: record?.number }}\r\n          onSubmit={handleSave}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              PARECER DA EQUIPE DE TRIAGEM DE INTERVENÇÕES PRECOCES\r\n            </Typography>\r\n\r\n            <Typography\r\n              variant=\"h6\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formSubTitles}\r\n            >\r\n              (0 a 3 anos e 11 meses)\r\n            </Typography>\r\n\r\n            <Typography\r\n              variant=\"subtitle2\"\r\n              component=\"span\"\r\n              align=\"center\"\r\n              className={classes.formSubTitles}\r\n            >\r\n              (preenchido pela triagem)\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={4}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data da Triagem\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date}\r\n                    onChange={(d) => setDate(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n\r\n              <Grid item xs={4} />\r\n\r\n              <Grid item xs={4}>\r\n                <CustomCheckbox\r\n                  name=\"social_service\"\r\n                  value=\"social_service\"\r\n                  label=\"Av.Serviço Social\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"professional\"\r\n                  label=\"Quem realizou a Triagem\"\r\n                  name=\"professional\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={2} />\r\n\r\n              <Grid item xs={4}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date_social}\r\n                    onChange={(d) => setDateSocial(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n\r\n              <Grid item xs={8} />\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"amount\"\r\n                  label=\"Valor\"\r\n                  name=\"amount\"\r\n                  placeholder=\"R$\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Dados de Identificação\r\n                </FormLabel>\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                <Input id=\"patient_name\" label=\"Nome\" name=\"patient_name\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input id=\"patient_age\" label=\"Idade\" name=\"patient_age\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input id=\"patient_gender\" label=\"Sexo\" name=\"patient_gender\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data de Nascimento\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={patient_birth}\r\n                    onChange={(d) => setPatientBirth(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Indicação de Tratamento\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <span>\r\n                  (indicação de tratamento do paciente e/ ou família: para qual\r\n                  terapeuta e/ ou setor(es) foi encaminhado o caso)\r\n                </span>\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"test_psyco\"\r\n                  value=\"test_psyco\"\r\n                  label=\"Avaliação Psicoterápica\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"food\"\r\n                  value=\"food\"\r\n                  label=\"Setor de transtornos alimentares\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"body_clinic\"\r\n                  value=\"body_clinic\"\r\n                  label=\"Corpo clínico\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"psyco_area\"\r\n                  value=\"psyco_area\"\r\n                  label=\"Setor de psicodiagnóstico\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"env_terapy\"\r\n                  value=\"env_terapy\"\r\n                  label=\"Ambientoterapia\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"kid_area\"\r\n                  value=\"kid_area\"\r\n                  label=\"Setor de psicopedagogia\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"adoption\"\r\n                  value=\"adoption\"\r\n                  label=\"Setor de adoção\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"fono\"\r\n                  value=\"fono\"\r\n                  label=\"Setor de fonoaudiologia\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"parents\"\r\n                  value=\"parents\"\r\n                  label=\"Setor de atendimento a pais\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"other_place\"\r\n                  value=\"other_place\"\r\n                  label=\"Para outro local\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"early\"\r\n                  value=\"early\"\r\n                  label=\"Setor de intervenções precoces\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"which_area\" label=\"Qual?\" name=\"which_area\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={12} />\r\n              <Grid item xs={12} />\r\n              <Grid item xs={12} />\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"professional_name\"\r\n                  label=\"Nome do Terapeuta\"\r\n                  name=\"professional_name\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"interview_date\"\r\n                  label=\"Entrevista marcada para dia\"\r\n                  name=\"interview_date\"\r\n                  placeholder=\"____/____/_______\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"interview_hour\"\r\n                  label=\"Horário\"\r\n                  name=\"interview_hour\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"interview_price\"\r\n                  label=\"Valor da consulta\"\r\n                  name=\"interview_price\"\r\n                  placeholder=\"R$\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Dados Coletados Durante a Triagem\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  1) Impressão Geral Transmitida pelo Paciente e/ou Familiar(es)\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"overview\"\r\n                  label=\"(descrição das primeiras impressões do paciente e da família:\r\n                    quem compareceu, aspectos físicos, humor, comportamento,\r\n                    cuidados pessoais, modo de agir e se expressar. Sentimentos\r\n                    despertados no entrevistador)\"\r\n                  name=\"overview\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  2) Motivo da Consulta\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"(motivos descritos pelo paciente e família para a busca de atendimento)\"\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  3) Aspectos Familiares\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"family\"\r\n                  label=\"(o que envolve o paciente e sua família: com quem mora, relacionamento com os pais e irmãos, relacionamento entre os pais, rede de apoio, problemas familiares, etc…)\"\r\n                  name=\"family\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  4) Aspectos Escolares\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"school\"\r\n                  label=\"(adaptação, com que idade ingressou na escola)\"\r\n                  name=\"school\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  5) História Pregressa\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"history\"\r\n                  label=\"(informações fornecidas pela família sobre a história do paciente e/ou família, questões do desenvolvimento, situações importantes da vida do paciente)\"\r\n                  name=\"history\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  6) Tratamentos Anteriores\r\n                </FormLabel>\r\n\r\n                <Grid container spacing={2}>\r\n                  {historyItems.map((item) => (\r\n                    <>\r\n                      <Grid item xs={4}>\r\n                        <CustomCheckbox\r\n                          name={`with_${item.name}`}\r\n                          value={`with_${item}`}\r\n                          label={item.label}\r\n                        />\r\n                      </Grid>\r\n\r\n                      <Grid item xs={4}>\r\n                        <Input\r\n                          id={`which_${item.name}`}\r\n                          label=\"Quem?\"\r\n                          name={`which_${item.name}`}\r\n                        />\r\n                      </Grid>\r\n\r\n                      <Grid item xs={4}>\r\n                        <Input\r\n                          id={`when_${item.name}`}\r\n                          label=\"Quando?\"\r\n                          name={`when_${item.name}`}\r\n                        />\r\n                      </Grid>\r\n                    </>\r\n                  ))}\r\n                </Grid>\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  7) Uso de medicação\r\n                </FormLabel>\r\n\r\n                <Grid item xs={12}>\r\n                  <CustomCheckbox\r\n                    name=\"no_medication\"\r\n                    value=\"no_medication\"\r\n                    label=\"Não\"\r\n                  />\r\n                </Grid>\r\n\r\n                <Grid container spacing={1}>\r\n                  <Grid item xs={12}>\r\n                    <CustomCheckbox\r\n                      name=\"yes_currently\"\r\n                      value=\"yes_currently\"\r\n                      label=\"Sim, atualmente faz uso\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={6}>\r\n                    <Input\r\n                      id=\"which_yes_currently\"\r\n                      label=\"Qual?\"\r\n                      name=\"which_yes_currently\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={6}>\r\n                    <Input\r\n                      id=\"when_yes_currently\"\r\n                      label=\"Desde quando?\"\r\n                      name=\"when_yes_currently\"\r\n                    />\r\n                  </Grid>\r\n                </Grid>\r\n\r\n                <Grid container spacing={1}>\r\n                  <Grid item xs={12}>\r\n                    <CustomCheckbox\r\n                      name=\"yes_in_the_past\"\r\n                      value=\"yes_in_the_past\"\r\n                      label=\"Sim, fez uso anteriormente\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={6}>\r\n                    <Input\r\n                      id=\"which_yes_in_the_past\"\r\n                      label=\"Qual?\"\r\n                      name=\"which_yes_in_the_past\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={6}>\r\n                    <Input\r\n                      id=\"when_yes_in_the_past\"\r\n                      label=\"Quando?\"\r\n                      name=\"when_yes_in_the_past\"\r\n                    />\r\n                  </Grid>\r\n\r\n                  <Grid item xs={12}>\r\n                    <Input\r\n                      id=\"orientation_yes_in_the_past\"\r\n                      label=\"Qual foi a indicação ou diagnóstico?\"\r\n                      name=\"orientation_yes_in_the_past\"\r\n                    />\r\n                  </Grid>\r\n                </Grid>\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  8) Compreensão Psicodinâmica\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"understanding\"\r\n                  label=\"(compreensão da situação clínica e da dinâmica do funcionamento do paciente e família)\"\r\n                  name=\"understanding\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  9) Outras informações obtidas e/ou observadas\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"observations\"\r\n                  label=\"Observações\"\r\n                  name=\"observations\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  10) Recomendações para avaliações adicionais\r\n                </FormLabel>\r\n\r\n                <Input\r\n                  id=\"recomendation\"\r\n                  label=\"(sugestões da equipe de triagem para realização de consultorias familiar/ adoção/ proteção/ transtornos alimentares, etc e/ ou futuros encaminhamentos para o paciente e família)\"\r\n                  name=\"recomendation\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  11) Lista de Sintoma\r\n                </FormLabel>\r\n                <br />\r\n                <span>\r\n                  (Padronizada conforme comissão de pesquisa do CEAPIA -\r\n                  referente aos dados levantados nos prontuários ao longo dos 40\r\n                  anos)\r\n                </span>\r\n                <br />\r\n                <br />\r\n                <span>\r\n                  <b>\r\n                    Marque o(s) grupo(s) de sintomas que mais se encaixam com o\r\n                    paciente e também o sintoma identificado.\r\n                  </b>\r\n                </span>\r\n\r\n                <FormControl fullWidth className={classes.formControl}>\r\n                  <Divider className={classes.divider} />\r\n                </FormControl>\r\n\r\n                {symtomsList.map((group) => (\r\n                  <>\r\n                    <Grid container spacing={2}>\r\n                      <Grid item xs={12} className={classes.groupTitle}>\r\n                        <CustomCheckbox\r\n                          name={group.groupName}\r\n                          value={group.groupName}\r\n                          label={group.groupLabel}\r\n                        />\r\n                      </Grid>\r\n\r\n                      {group.subGroups &&\r\n                        group.subGroups.map((subgroup) => (\r\n                          <Grid item xs={4}>\r\n                            <CustomCheckbox\r\n                              name={`${group.groupName}_${subgroup.name}`}\r\n                              value={`${group.groupName}_${subgroup.name}`}\r\n                              label={subgroup.label}\r\n                            />\r\n                          </Grid>\r\n                        ))}\r\n                    </Grid>\r\n\r\n                    <FormControl fullWidth className={classes.formControl}>\r\n                      <Divider className={classes.divider} />\r\n                    </FormControl>\r\n                  </>\r\n                ))}\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <Grid item xs={12}>\r\n            <FormLabel className={classes.formTitles}>\r\n              12) Hipóteses diagnósticas\r\n            </FormLabel>\r\n\r\n            <span> (Conforme Classificação Diagnóstica: 0-3)</span>\r\n\r\n            <br />\r\n            <br />\r\n\r\n            <span>\r\n              (Hipótese diagnóstica de acordo com os sintomas apresentados e\r\n              descritos no momento da triagem. Marque o grupo diagnóstico abaixo\r\n              e se possível, especifique a categoria)\r\n            </span>\r\n\r\n            <br />\r\n            <br />\r\n\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Eixo I: Diagnóstico Primário\r\n                </FormLabel>\r\n              </Grid>\r\n              {renderList(hypotesisList)}\r\n\r\n              <FormControl fullWidth className={classes.formControl}>\r\n                <Divider className={classes.divider} />\r\n              </FormControl>\r\n\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Eixo II: Transtorno do Relacionamento\r\n                </FormLabel>\r\n              </Grid>\r\n              {renderList(hypotesistList2)}\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              {renderList(hypotesistList3)}\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              {renderList(hypotesistList4)}\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              {renderList(hypotesistList5)}\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            {/* <Divider className={classes.divider} /> */}\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Salvar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button\r\n                  onClick={() => handleClickOpen()}\r\n                  style={{ background: green[700], color: 'white' }}\r\n                  variant=\"contained\"\r\n                >\r\n                  Encaminhar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <a\r\n                  href={`/prontuarios/${record?._id}/formularios/encerramento-atendimento`}\r\n                  style={{\r\n                    background: red[700],\r\n                    color: 'white',\r\n                    outline: 'none',\r\n                    textDecoration: 'none',\r\n                  }}\r\n                >\r\n                  <Button\r\n                    onClick={() => console.log('Encerrar')}\r\n                    style={{ background: red[700], color: 'white' }}\r\n                    variant=\"contained\"\r\n                  >\r\n                    Encerrar\r\n                  </Button>\r\n                </a>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default BabyScreeningForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n}));\r\n\r\nconst EvolutionForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n\r\n        const formRequest = {\r\n          type: 'monthlyEvolution',\r\n          title: 'Evolução Mensal do Paciente',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar evolução.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              EVOLUÇÃO MENSAL DO PACIENTE EM AMBIENTOTERAPIA\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={2}>\r\n              <FormLabel className={classes.formTitles}>\r\n                Referente ao mês:\r\n              </FormLabel>\r\n            </Grid>\r\n\r\n            <Grid item xs={2}>\r\n              <Input id=\"period_month\" label=\"Mês\" name=\"period_month\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={2}>\r\n              <Input id=\"period_year\" label=\"Ano\" name=\"period_year\" />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"evolution\"\r\n                  label=\"Evolução\"\r\n                  name=\"evolution\"\r\n                  isMultiline\r\n                  rows={10}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2} justify=\"flex-end\">\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"form_data\"\r\n                  label=\"Data\"\r\n                  name=\"form_data\"\r\n                  defaultValue={moment().format('DD/MM/YYYY').toString()}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default EvolutionForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport CustomCheckbox from '../../../components/Checkbox';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formSubTitles: {\r\n    fontWeight: 'normal',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n  groupTitle: {\r\n    display: 'flex',\r\n    '& span': {\r\n      fontWeight: 'bolder',\r\n    },\r\n  },\r\n  dateGrid: {\r\n    display: 'flex',\r\n    alignItems: 'center',\r\n    justifyContent: 'center',\r\n  },\r\n}));\r\n\r\nconst PsychiatricForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [date, setDate] = useState(new Date());\r\n  const [date_social, setDateSocial] = useState(new Date());\r\n  const [patient_birth, setPatientBirth] = useState(new Date());\r\n\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          if (formResponse?.data) {\r\n            setDateSocial(\r\n              formResponse?.data.answers.date_socal\r\n                ? moment(formResponse?.data.answers.date_social).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          if (formResponse?.data) {\r\n            setPatientBirth(\r\n              formResponse?.data.answers.patient_birth\r\n                ? moment(formResponse?.data.answers.patient_birth).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n        data.patient_birth = moment(patient_birth).format('YYYY-MM-DD');\r\n        if (data.date_social)\r\n          data.social_date = moment(date).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'hosting',\r\n          title: 'Acolhimento',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar ficha.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, patient_birth, history, formId, date, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers || { record: record?.number }}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              ACOLHIMENTO\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={3}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date_social}\r\n                    onChange={(d) => setDateSocial(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n\r\n              <Grid item xs={1} />\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"hour\"\r\n                  label=\"Horário\"\r\n                  name=\"hour\"\r\n                  placeholder=\"___:___\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input disabled id=\"record\" label=\"Prontuário\" name=\"record\" />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Identificação\r\n                </FormLabel>\r\n              </Grid>\r\n              <Grid item xs={12}>\r\n                <Input id=\"patient_name\" label=\"Nome\" name=\"patient_name\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"patient_age\" label=\"Idade\" name=\"patient_age\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={2} />\r\n\r\n              <Grid item xs={4}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data de Nascimento\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={patient_birth}\r\n                    onChange={(d) => setPatientBirth(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input id=\"patient_mother\" label=\"Mãe\" name=\"patient_mother\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"patient_mother_age\"\r\n                  label=\"Idade\"\r\n                  name=\"patient_mother_age\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input id=\"patient_father\" label=\"Pai\" name=\"patient_father\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"patient_father_age\"\r\n                  label=\"Idade\"\r\n                  name=\"patient_father_age\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"interview_members\"\r\n                  label=\"Quem compareceu a entrevista\"\r\n                  name=\"interview_members\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"patient_relationship\"\r\n                  label=\"Grau de parentesco com o/a paciente\"\r\n                  name=\"patient_relationship\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>Demanda</FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"interview_type\"\r\n                  label=\"Tipo de Atendimento\"\r\n                  name=\"interview_type\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"Motivo da procura/queixa\"\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"schedule\"\r\n                  label=\"Disponibilidade de horário para atendimento\"\r\n                  name=\"schedule\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Dados Sociais e Econômicos\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Typography className={classes.formTitles}>\r\n                  Condições de Moradia\r\n                </Typography>\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  name=\"own_house\"\r\n                  value=\"own_house\"\r\n                  label=\"Própria\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  name=\"lend_house\"\r\n                  value=\"lend_house\"\r\n                  label=\"Cedida\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  name=\"rent_house\"\r\n                  value=\"rent_house\"\r\n                  label=\"Alugada\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  name=\"financed_house\"\r\n                  value=\"financed_house\"\r\n                  label=\"Financiada\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input id=\"condominium\" label=\"Condomínio\" name=\"condominium\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Typography className={classes.formTitles}>\r\n                  Despesas Mensais Básicas\r\n                </Typography>\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"food\" label=\"Alimentação\" name=\"food\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <Input id=\"water\" label=\"Água\" name=\"water\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <Input id=\"light\" label=\"Luz\" name=\"light\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"internet\"\r\n                  label=\"Tel. Fixo/ Internet / TV a cabo\"\r\n                  name=\"internet\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input id=\"phone\" label=\"Tel. Celular\" name=\"phone\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Typography className={classes.formTitles}>\r\n                  Situação Escolar\r\n                </Typography>\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input id=\"school\" label=\"Escola\" name=\"school\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input id=\"school_hour\" label=\"Turno\" name=\"school_hour\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"public_school\"\r\n                  value=\"public_school\"\r\n                  label=\"Pública Municipal\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"public_private\"\r\n                  value=\"public_private\"\r\n                  label=\"Privada com bolsa\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"public_state\"\r\n                  value=\"public_state\"\r\n                  label=\"Pública Estadual\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"public_private_paid\"\r\n                  value=\"public_private_paid\"\r\n                  label=\"Privada sem bolsa\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Typography className={classes.formTitles}>\r\n                  Condições de Mobilidade\r\n                </Typography>\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox name=\"bus\" value=\"bus\" label=\"Ônibus\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  name=\"little_bus\"\r\n                  value=\"little_bus\"\r\n                  label=\"Lotação\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox name=\"car\" value=\"car\" label=\"Carro\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={3}>\r\n                <CustomCheckbox\r\n                  name=\"motorcycle\"\r\n                  value=\"motorcycle\"\r\n                  label=\"Moto\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <span>\r\n                  Necessita de transporte para comparecer ao atendimento\r\n                </span>\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox name=\"yes_ride\" value=\"yes_ride\" label=\"Sim\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox name=\"no_ride\" value=\"no_ride\" label=\"Não\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"ride_expenses\"\r\n                  label=\"Despesa mensal com transporte\"\r\n                  name=\"ride_expenses\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Typography className={classes.formTitles}>\r\n                  Condições de Acesso a Cultura, Esporte e Lazer\r\n                </Typography>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"culture\"\r\n                  label=\"Condições de Acesso a Cultura, Esporte e Lazer\"\r\n                  name=\"culture\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Typography className={classes.formTitles}>\r\n                  Condições de Saúde\r\n                </Typography>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"health_plan\"\r\n                  label=\"Plano de Saúde\"\r\n                  name=\"health_plan\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"family_health\"\r\n                  label=\"Familiar em tratamento de saúde, com doenças crônicas ou com deficiência\"\r\n                  name=\"family_health\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"medicines\"\r\n                  label=\"Medicamentos de uso contínuo\"\r\n                  name=\"medicines\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input id=\"treatments\" label=\"Tratamentos\" name=\"treatments\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Typography className={classes.formTitles}>\r\n                  Outras despesas\r\n                </Typography>\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"loan\"\r\n                  label=\"Empréstimos\"\r\n                  name=\"loan\"\r\n                  placeholder=\"R$\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <Input\r\n                  id=\"loan_end\"\r\n                  label=\"Previsão de data de término\"\r\n                  name=\"loan_end\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"loan_others\"\r\n                  label=\"Outros\"\r\n                  name=\"loan_others\"\r\n                  isMultiline\r\n                  rows={3}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Typography className={classes.formTitles}>\r\n                  Composição da Renda Familiar\r\n                </Typography>\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"family_income_origin_1\"\r\n                  label=\"Origem\"\r\n                  name=\"family_income_origin_1\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"family_income_1\"\r\n                  label=\"Valor\"\r\n                  name=\"family_income_1\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"family_income_origin_2\"\r\n                  label=\"Origem\"\r\n                  name=\"family_income_origin_2\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"family_income_2\"\r\n                  label=\"Valor\"\r\n                  name=\"family_income_2\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"family_income_origin_3\"\r\n                  label=\"Origem\"\r\n                  name=\"family_income_origin_3\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"family_income_3\"\r\n                  label=\"Valor\"\r\n                  name=\"family_income_3\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"family_income_origin_4\"\r\n                  label=\"Origem\"\r\n                  name=\"family_income_origin_4\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"family_income_4\"\r\n                  label=\"Valor\"\r\n                  name=\"family_income_4\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"family_income_origin_5\"\r\n                  label=\"Origem\"\r\n                  name=\"family_income_origin_5\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"family_income_5\"\r\n                  label=\"Valor\"\r\n                  name=\"family_income_5\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8} />\r\n\r\n              <Grid item xs={4}>\r\n                <Input\r\n                  id=\"total_income_value\"\r\n                  label=\"Total\"\r\n                  name=\"total_income_value\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <span>\r\n                  Receberá auxílio financeiro de terceiros para custear o\r\n                  tratamento\r\n                </span>\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"yes_financial_help\"\r\n                  value=\"yes_financial_help\"\r\n                  label=\"Sim\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={6}>\r\n                <CustomCheckbox\r\n                  name=\"no_financial_help\"\r\n                  value=\"no_financial_help\"\r\n                  label=\"Não\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"yes_financial_help_specify\"\r\n                  label=\"De quem?\"\r\n                  name=\"yes_financial_help_specify\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  História Familiar / Dados Pregressos\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"family_history\"\r\n                  label=\"História Familiar / Dados Pregressos\"\r\n                  name=\"family_history\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Parecer da Assistente Social\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"social_assistant\"\r\n                  label=\"Parecer da Assistente Social\"\r\n                  name=\"social_assistant\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"attendence_possibilities\"\r\n                  label=\"Possibilidade de outros atendimentos\"\r\n                  name=\"attendence_possibilities\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"amount_suggestion\"\r\n                  label=\"Sugestão de Valor\"\r\n                  name=\"amount_suggestion\"\r\n                  placeholder=\"R$\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <span>Permaneceu na Instituição</span>\r\n              </Grid>\r\n\r\n              <Grid item xs={2}>\r\n                <CustomCheckbox\r\n                  name=\"yes_stayed\"\r\n                  value=\"yes_stayed\"\r\n                  label=\"Sim\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={2}>\r\n                <CustomCheckbox\r\n                  name=\"no_stayed\"\r\n                  value=\"no_stayed\"\r\n                  label=\"Não\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={8}>\r\n                <Input\r\n                  id=\"no_stayed_specify\"\r\n                  label=\"Se não, encaminhado para\"\r\n                  name=\"no_stayed_specify\"\r\n                />\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"observations\"\r\n                  label=\"Observações\"\r\n                  name=\"observations\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={4} />\r\n\r\n              <Grid item xs={2} className={classes.dateGrid}>\r\n                <span>Porto Alegre,</span>\r\n              </Grid>\r\n\r\n              <Grid item xs={1}>\r\n                <Input id=\"day\" label=\"Dia\" name=\"day\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={1} className={classes.dateGrid}>\r\n                de\r\n              </Grid>\r\n\r\n              <Grid item xs={1}>\r\n                <Input id=\"month\" label=\"Mês\" name=\"month\" />\r\n              </Grid>\r\n\r\n              <Grid item xs={1} className={classes.dateGrid}>\r\n                de\r\n              </Grid>\r\n\r\n              <Grid item xs={2}>\r\n                <Input id=\"year\" label=\"Ano\" name=\"year\" />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default PsychiatricForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst NutritionEvolutionForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n\r\n        const formRequest = {\r\n          type: 'monthlyNutritionEvolution',\r\n          title: 'Evolução Mensal da Nutrição',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar evolução.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              EVOLUÇÃO MENSAL DA NUTRIÇÃO\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={2}>\r\n              <FormLabel className={classes.formTitles}>\r\n                Referente ao mês:\r\n              </FormLabel>\r\n            </Grid>\r\n\r\n            <Grid item xs={2}>\r\n              <Input id=\"period_month\" label=\"Mês\" name=\"period_month\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={2}>\r\n              <Input id=\"period_year\" label=\"Ano\" name=\"period_year\" />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"evolution\"\r\n                  label=\"Evolução\"\r\n                  name=\"evolution\"\r\n                  isMultiline\r\n                  rows={10}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2} justify=\"flex-end\">\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"form_data\"\r\n                  label=\"Data\"\r\n                  name=\"form_data\"\r\n                  defaultValue={moment().format('DD/MM/YYYY').toString()}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default NutritionEvolutionForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst PsychiatryEvolutionForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n\r\n        const formRequest = {\r\n          type: 'psychiatryEvolution',\r\n          title: 'Evolução Psiquiátrica do Paciente',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar evolução.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              EVOLUÇÃO PSIQUIÁTRICA DO PACIENTE\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={2}>\r\n              <FormLabel className={classes.formTitles}>\r\n                Referente a consulta:\r\n              </FormLabel>\r\n            </Grid>\r\n\r\n            <Grid item xs={2}>\r\n              <Input id=\"period_month\" label=\"Mês\" name=\"period_month\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={2}>\r\n              <Input id=\"period_year\" label=\"Ano\" name=\"period_year\" />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"evolution\"\r\n                  label=\"Evolução\"\r\n                  name=\"evolution\"\r\n                  isMultiline\r\n                  rows={10}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2} justify=\"flex-end\">\r\n              <Grid item xs={2}>\r\n                <Input\r\n                  id=\"form_data\"\r\n                  label=\"Data\"\r\n                  name=\"form_data\"\r\n                  defaultValue={moment().format('DD/MM/YYYY').toString()}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default PsychiatryEvolutionForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst ConsultantRequestForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [birth, setBirth] = useState(new Date());\r\n  const [date, setDate] = useState(new Date());\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n            setBirth(\r\n              formResponse?.data.answers.birth\r\n                ? moment(formResponse?.data.answers.birth).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.birth = moment(birth).format('YYYY-MM-DD');\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'consultantRequest',\r\n          title: 'Solicitação Consultoria Setor de Transtornos Alimentares',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar encaminhamento.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, birth, date, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              FICHA DE SOLICITAÇÃO DE CONSULTORIA SETOR DE TRANSTORNOS\r\n              ALIMENTARES\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={12}>\r\n              <Input\r\n                id=\"patient_name\"\r\n                label=\"Nome do Paciente\"\r\n                name=\"patient_name\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data de Nascimento\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={birth}\r\n                  onChange={(d) => setBirth(d as Date)}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input id=\"age\" label=\"Idade\" name=\"age\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={4}>\r\n              <Input\r\n                id=\"number\"\r\n                label=\"Número do Prontuário\"\r\n                defaultValue={record?.number}\r\n                name=\"number\"\r\n              />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo do encaminhamento para atendimento no CEAPIA\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo da solicitação da consultoria\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"request_motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"request_motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Devolução da consultoria\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"return_motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"return_motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"professional\"\r\n                  label=\"Nome do Terapeuta\"\r\n                  name=\"professional\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"pro_phone\"\r\n                  label=\"Telefone de Contato\"\r\n                  name=\"pro_phone\"\r\n                  placeholder=\"(__) _____\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"supervisors\"\r\n                  label=\"Nome do supervisor/preceptores\"\r\n                  name=\"supervisors\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item xs={12}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data da Solicitação de Consultoria\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date}\r\n                    onChange={(d) => setDate(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default ConsultantRequestForm;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { Form } from '@unform/web';\r\nimport { FormHandles } from '@unform/core';\r\n\r\nimport {\r\n  Button,\r\n  Divider,\r\n  FormControl,\r\n  FormLabel,\r\n  Grid,\r\n  makeStyles,\r\n  Theme,\r\n  Typography,\r\n} from '@material-ui/core';\r\n\r\nimport { TextField } from '@mui/material';\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/lab';\r\n\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\n\r\nimport moment from 'moment';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport Input from '../../../components/Input';\r\nimport { useAxios } from '../../../utils/hooks';\r\nimport getValidationErrors from '../../../utils/getValidationErrors';\r\nimport { Form as FormModel } from '../../../models/form';\r\nimport { Record } from '../../../models/record';\r\nimport Loader from '../../../components/Loader';\r\nimport Snackbar, { AlertComponentProps } from '../../../components/Snackbar';\r\nimport Signatures from '../../../components/Signatures';\r\nimport { SignatureForm } from '../../../models/signature-form';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n  root: {\r\n    display: 'flex',\r\n    flexWrap: 'wrap',\r\n    background: 'white',\r\n    padding: theme.spacing(3),\r\n    margin: theme.spacing(3),\r\n    marginBottom: theme.spacing(10),\r\n  },\r\n  formTitles: {\r\n    fontWeight: 'bolder',\r\n  },\r\n  formControl: {\r\n    margin: theme.spacing(2, 0),\r\n  },\r\n  divider: {\r\n    margin: theme.spacing(2),\r\n  },\r\n}));\r\n\r\nconst DeclarationForm: React.FC = () => {\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const [loading, setLoading] = useState(true);\r\n  const api = useAxios();\r\n  const [form, setForm] = useState<FormModel | null>(null);\r\n  const [record, setRecord] = useState<Record | null>(null);\r\n  const [signatures, setSignatures] = useState<SignatureForm[]>([]);\r\n  const [birth, setBirth] = useState(new Date());\r\n  const [date, setDate] = useState(new Date());\r\n  const { id, formId } = useParams<{ id: string; formId?: string }>();\r\n\r\n  const formRef = useRef<FormHandles>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  useEffect(() => {\r\n    async function getRecordData() {\r\n      try {\r\n        const recordResponse = await api.current?.get(`/records/${id}`);\r\n        setRecord(recordResponse?.data);\r\n\r\n        if (formId) {\r\n          const formResponse = await api.current?.get(`/forms/${formId}`);\r\n          if (formResponse?.data) {\r\n            setDate(\r\n              formResponse?.data.answers.date\r\n                ? moment(formResponse?.data.answers.date).toDate()\r\n                : new Date(),\r\n            );\r\n            setBirth(\r\n              formResponse?.data.answers.birth\r\n                ? moment(formResponse?.data.answers.birth).toDate()\r\n                : new Date(),\r\n            );\r\n          }\r\n          setForm(formResponse?.data);\r\n\r\n          if (\r\n            formResponse?.data.answers &&\r\n            formResponse?.data.answers.signatures\r\n          ) {\r\n            setSignatures(formResponse?.data.answers.signatures);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar prontuário.',\r\n        });\r\n      } finally {\r\n        setLoading(false);\r\n      }\r\n    }\r\n\r\n    getRecordData();\r\n  }, [api, id, formId]);\r\n\r\n  const resetAlert = () => {\r\n    setAlert({\r\n      isActive: false,\r\n      type: 'info',\r\n      message: 'none',\r\n    });\r\n  };\r\n\r\n  const handleSubmit = useCallback(\r\n    async (data: any) => {\r\n      try {\r\n        setLoading(true);\r\n        resetAlert();\r\n        formRef.current?.setErrors({});\r\n\r\n        // const schema = Yup.object().shape({\r\n        //   content: Yup.string().required('Insira uma nota'),\r\n        // });\r\n\r\n        // await schema.validate(data, { abortEarly: false });\r\n        data.birth = moment(birth).format('YYYY-MM-DD');\r\n        data.date = moment(date).format('YYYY-MM-DD');\r\n\r\n        const formRequest = {\r\n          type: 'declaration',\r\n          title: 'Declaração CEAPIA',\r\n          patient: record?.patient._id,\r\n          record: record?._id,\r\n          answers: { ...data, signatures },\r\n        };\r\n\r\n        if (formId) {\r\n          await api.current?.patch(`/forms/${formId}`, formRequest);\r\n        } else {\r\n          await api.current?.post('/forms', formRequest);\r\n        }\r\n\r\n        history.push(`/prontuarios/${id}`);\r\n      } catch (error) {\r\n        setLoading(false);\r\n        if (error instanceof Yup.ValidationError) {\r\n          const errors = getValidationErrors(error);\r\n\r\n          formRef.current?.setErrors(errors);\r\n        } else {\r\n          setAlert({\r\n            isActive: true,\r\n            type: 'error',\r\n            message: 'Erro ao enviar declaração.',\r\n          });\r\n        }\r\n      }\r\n    },\r\n    [api, record, history, formId, birth, date, id, signatures],\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <Loader loading={loading} />\r\n\r\n      {!loading && (\r\n        <Form\r\n          id=\"form\"\r\n          ref={formRef}\r\n          initialData={form?.answers}\r\n          onSubmit={handleSubmit}\r\n          className={classes.root}\r\n        >\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Typography\r\n              variant=\"h5\"\r\n              component=\"h1\"\r\n              align=\"center\"\r\n              className={classes.formTitles}\r\n            >\r\n              DECLARAÇÃO\r\n            </Typography>\r\n\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"patient_name\"\r\n                label=\"Nome do Paciente\"\r\n                name=\"patient_name\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"parent_names\"\r\n                label=\"Nome dos pais\"\r\n                name=\"parent_names\"\r\n              />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                <DesktopDatePicker\r\n                  label=\"Data de Nascimento\"\r\n                  inputFormat=\"dd/MM/yyyy\"\r\n                  value={birth}\r\n                  onChange={(d) => setBirth(d as Date)}\r\n                  renderInput={(params) => <TextField {...params} />}\r\n                />\r\n              </LocalizationProvider>\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input id=\"age\" label=\"Idade\" name=\"age\" />\r\n            </Grid>\r\n\r\n            <Grid item xs={6}>\r\n              <Input\r\n                id=\"number\"\r\n                label=\"Número do Prontuário\"\r\n                defaultValue={record?.number}\r\n                name=\"number\"\r\n              />\r\n            </Grid>\r\n          </Grid>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo do encaminhamento para o CEAPIA\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Motivo do encaminhamento para o Setor de Transtornos\r\n                  Alimentares\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"food_motive\"\r\n                  label=\"Descreva\"\r\n                  name=\"food_motive\"\r\n                  isMultiline\r\n                  rows={5}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <Input\r\n                  id=\"professional\"\r\n                  label=\"Nome do Terapeuta\"\r\n                  name=\"professional\"\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Divider className={classes.divider} />\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={2}>\r\n              <Grid item xs={12}>\r\n                <FormLabel className={classes.formTitles}>\r\n                  Assinaturas\r\n                </FormLabel>\r\n              </Grid>\r\n\r\n              <Grid item xs={12} justify=\"center\">\r\n                <Signatures\r\n                  formAnswers={form ? form.answers : {}}\r\n                  onSignature={setSignatures}\r\n                />\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formControl}>\r\n            <Grid container spacing={1}>\r\n              <Grid item xs={10} />\r\n              <Grid item xs={2}>\r\n                <LocalizationProvider dateAdapter={AdapterDateFns}>\r\n                  <DesktopDatePicker\r\n                    label=\"Data do encaminhamento\"\r\n                    inputFormat=\"dd/MM/yyyy\"\r\n                    value={date}\r\n                    onChange={(d) => setDate(d as Date)}\r\n                    renderInput={(params) => <TextField {...params} />}\r\n                  />\r\n                </LocalizationProvider>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n\r\n          <FormControl fullWidth className={classes.formTitles}>\r\n            <Grid container spacing={1} justify=\"center\">\r\n              <Grid item>\r\n                <Button\r\n                  variant=\"outlined\"\r\n                  color=\"primary\"\r\n                  onClick={() => history.push(`/prontuarios/${id}`)}\r\n                >\r\n                  Voltar\r\n                </Button>\r\n              </Grid>\r\n\r\n              <Grid item>\r\n                <Button type=\"submit\" color=\"primary\" variant=\"contained\">\r\n                  Enviar\r\n                </Button>\r\n              </Grid>\r\n            </Grid>\r\n          </FormControl>\r\n        </Form>\r\n      )}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </>\r\n  );\r\n};\r\n\r\nexport default DeclarationForm;\r\n","import React from 'react';\r\n\r\nimport { Container, Typography } from '@mui/material';\r\n\r\nconst NotAuthorized: React.FC = () => {\r\n  return (\r\n    <Container>\r\n      <Typography variant=\"h4\" component=\"h1\" align=\"center\">\r\n        403 - Acesso não autorizado\r\n      </Typography>\r\n    </Container>\r\n  );\r\n};\r\n\r\nexport default NotAuthorized;\r\n","import * as React from 'react';\r\nimport { Route, Redirect, RouteComponentProps } from 'react-router-dom';\r\nimport type { RouteProps } from 'react-router-dom';\r\n\r\nimport { useKeycloak } from '@react-keycloak/web';\r\nimport { useHasRealmRole } from '../utils/hooks';\r\nimport NotAuthorized from '../pages/NotAuthorized';\r\n\r\ninterface PrivateRouteParams extends RouteProps {\r\n  component:\r\n    | React.ComponentType<RouteComponentProps<any>>\r\n    | React.ComponentType<any>;\r\n}\r\n\r\nconst PrivateRoute = ({\r\n  component: Component,\r\n  ...rest\r\n}: PrivateRouteParams & { role?: string }) => {\r\n  const { keycloak } = useKeycloak();\r\n  const hasRole = useHasRealmRole(rest.role || 'professional');\r\n\r\n  return (\r\n    <Route\r\n      {...rest}\r\n      render={(props: any) => {\r\n        if (keycloak?.authenticated && !keycloak?.isTokenExpired()) {\r\n          return hasRole ? <Component {...props} /> : <NotAuthorized />;\r\n        }\r\n\r\n        return (\r\n          <Redirect\r\n            to={{\r\n              pathname: '/login',\r\n              state: { from: props.location },\r\n            }}\r\n          />\r\n        );\r\n      }}\r\n    />\r\n  );\r\n};\r\n\r\nPrivateRoute.defaultProps = {\r\n  role: 'professional',\r\n};\r\n\r\nexport default PrivateRoute;\r\n","import * as React from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\n\r\nimport { useKeycloak } from '@react-keycloak/web';\r\n\r\nimport LoginPage from '../pages/Login';\r\nimport MyRecords from '../pages/MyRecords/List';\r\nimport SupervisionList from '../pages/Supervision/List';\r\nimport Requests from '../pages/Requests';\r\nimport RecordsList from '../pages/Records/List';\r\nimport RecordsDetail from '../pages/Records/Show';\r\nimport Loader from '../components/Loader';\r\nimport PatientsList from '../pages/Patients/List';\r\n// import GroupsList from '../pages/Groups/List';\r\nimport InitialForm from '../pages/Forms/Init';\r\nimport ParentInitialForm from '../pages/Forms/ParentInit';\r\nimport AdoptionForm from '../pages/Forms/Adoption';\r\nimport UpdateForm from '../pages/Forms/Update';\r\nimport EvaluationForm from '../pages/Forms/Evalutation';\r\nimport SocialServiceForm from '../pages/Forms/SocialService';\r\nimport ParentsForm from '../pages/Forms/Parents';\r\nimport PsychopedagogyForm from '../pages/Forms/Psychopedagogy';\r\nimport DiscountForm from '../pages/Forms/Discount';\r\nimport DiagnosisForm from '../pages/Forms/Diagnosis';\r\nimport PsychiatricForm from '../pages/Forms/Psychiatric';\r\nimport QuarterForm from '../pages/Forms/QuarterPlan';\r\nimport ForwardForm from '../pages/Forms/Forward';\r\nimport FoodForwardForm from '../pages/Forms/FoodForward';\r\nimport GroupForwardForm from '../pages/Forms/GroupForward';\r\nimport ClinicForwardForm from '../pages/Forms/ClinicForward';\r\nimport ClosureForm from '../pages/Forms/Closure';\r\nimport Signature from '../pages/Signature';\r\nimport Settings from '../pages/Settings';\r\nimport Screening from '../pages/Forms/Screening';\r\nimport BabyScreening from '../pages/Forms/BabyScreening';\r\nimport Evolution from '../pages/Forms/Evolution';\r\nimport Hosting from '../pages/Forms/Hosting';\r\nimport NutritionEvolution from '../pages/Forms/NutritionEvolution';\r\nimport PsychiatryEvolution from '../pages/Forms/PsychiatryEvolution';\r\nimport ConsultantRequestForm from '../pages/Forms/ConsultantRequest';\r\nimport DeclarationForm from '../pages/Forms/Declaration';\r\n\r\nimport PrivateRoute from './privateRoute';\r\n\r\nexport enum RealmRoles {\r\n  ADMIN = 'admin',\r\n  PROFESSIONAL = 'professional',\r\n  SUPERVISOR = 'supervisor',\r\n  APPROVER = 'approvers',\r\n  RESEARCH = 'research',\r\n}\r\n\r\nexport const AppRouter: React.FC = () => {\r\n  const { initialized } = useKeycloak();\r\n\r\n  if (!initialized) {\r\n    return <Loader loading={!initialized} />;\r\n  }\r\n\r\n  return (\r\n    <Switch>\r\n      <Route\r\n        exact\r\n        path=\"/formularios/inicial/:formId\"\r\n        component={InitialForm}\r\n      />\r\n      <Route\r\n        exact\r\n        path=\"/formularios/inicial-responsaveis/:formId\"\r\n        component={ParentInitialForm}\r\n      />\r\n      <Route\r\n        exact\r\n        path=\"/formularios/inicial-adocao/:formId\"\r\n        component={AdoptionForm}\r\n      />\r\n      <Route\r\n        exact\r\n        path=\"/formularios/atualizacao-cadastral/:formId\"\r\n        component={UpdateForm}\r\n      />\r\n      <Route exact path=\"/assinatura\" component={Signature} />\r\n      <Route exact path=\"/conta\" component={Settings} />\r\n      <PrivateRoute exact path=\"/\" component={MyRecords} />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/meus-prontuarios\"\r\n        component={MyRecords}\r\n        role={RealmRoles.PROFESSIONAL}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/supervisao\"\r\n        component={SupervisionList}\r\n        role={RealmRoles.SUPERVISOR}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/aprovacoes\"\r\n        component={Requests}\r\n        role={RealmRoles.APPROVER}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios\"\r\n        component={RecordsList}\r\n        role={RealmRoles.ADMIN}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/meus-prontuarios/:id\"\r\n        component={(props: any) => <RecordsDetail {...props} />}\r\n      />\r\n      <PrivateRoute exact path=\"/prontuarios/:id\" component={RecordsDetail} />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/inicial/:formId\"\r\n        component={InitialForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/atualizacao-cadastral/:formId\"\r\n        component={UpdateForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/inicial-adocao/:formId\"\r\n        component={AdoptionForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/inicial-responsaveis/:formId\"\r\n        component={ParentInitialForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/avaliacao\"\r\n        component={EvaluationForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/avaliacao/:formId\"\r\n        component={EvaluationForm}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-servico-social\"\r\n        component={SocialServiceForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-servico-social/:formId\"\r\n        component={SocialServiceForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-transtornos-alimentares\"\r\n        component={FoodForwardForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-transtornos-alimentares/:formId\"\r\n        component={FoodForwardForm}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-setor-grupos\"\r\n        component={GroupForwardForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-setor-grupos/:formId\"\r\n        component={GroupForwardForm}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-corpo-clinico\"\r\n        component={ClinicForwardForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-corpo-clinico/:formId\"\r\n        component={ClinicForwardForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/consultoria-transtornos-alimentares\"\r\n        component={ConsultantRequestForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/consultoria-transtornos-alimentares/:formId\"\r\n        component={ConsultantRequestForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-atendimento-pais\"\r\n        component={ParentsForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-atendimento-pais/:formId\"\r\n        component={ParentsForm}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-psicopedagogia\"\r\n        component={PsychopedagogyForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-psicopedagogia/:formId\"\r\n        component={PsychopedagogyForm}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-terapeuta\"\r\n        component={ForwardForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encaminhamento-terapeuta/:formId\"\r\n        component={ForwardForm}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encerramento-atendimento\"\r\n        component={ClosureForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/encerramento-atendimento/:formId\"\r\n        component={ClosureForm}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/reducao-valor\"\r\n        component={DiscountForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/reducao-valor/:formId\"\r\n        component={DiscountForm}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/psicodiagnostico\"\r\n        component={DiagnosisForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/psicodiagnostico/:formId\"\r\n        component={DiagnosisForm}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/avaliacao-psiquiatrica\"\r\n        component={PsychiatricForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/avaliacao-psiquiatrica/:formId\"\r\n        component={PsychiatricForm}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/revisao-semestral-plano\"\r\n        component={QuarterForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/revisao-semestral-plano/:formId\"\r\n        component={QuarterForm}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/parecer-triagem\"\r\n        component={Screening}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/parecer-triagem/:formId\"\r\n        component={Screening}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/parecer-triagem-intervencoes-precoces\"\r\n        component={BabyScreening}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/parecer-triagem-intervencoes-precoces/:formId\"\r\n        component={BabyScreening}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/evolucao-mensal-ambientoterapia\"\r\n        component={Evolution}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/evolucao-mensal-ambientoterapia/:formId\"\r\n        component={Evolution}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/acolhimento\"\r\n        component={Hosting}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/acolhimento/:formId\"\r\n        component={Hosting}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/evolucao-mensal-nutricao\"\r\n        component={NutritionEvolution}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/evolucao-mensal-nutricao/:formId\"\r\n        component={NutritionEvolution}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/evolucao-psiquiatrica\"\r\n        component={PsychiatryEvolution}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/evolucao-psiquiatrica/:formId\"\r\n        component={PsychiatryEvolution}\r\n      />\r\n\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/declaracao\"\r\n        component={DeclarationForm}\r\n      />\r\n      <PrivateRoute\r\n        exact\r\n        path=\"/prontuarios/:id/formularios/declaracao/:formId\"\r\n        component={DeclarationForm}\r\n      />\r\n\r\n      <PrivateRoute\r\n        path=\"/pacientes\"\r\n        component={PatientsList}\r\n        role={RealmRoles.RESEARCH}\r\n      />\r\n\r\n      {/* <PrivateRoute\r\n        path=\"/setores\"\r\n        component={GroupsList}\r\n        role={RealmRoles.ADMIN}\r\n      /> */}\r\n      <Route path=\"/login\" component={LoginPage} />\r\n    </Switch>\r\n  );\r\n};\r\n","import Keycloak from 'keycloak-js';\r\nimport { AuthClientInitOptions } from '@react-keycloak/core';\r\n\r\nexport const keycloak = Keycloak({\r\n  url: `${process.env.REACT_APP_KEYCLOAK_URL}/auth`,\r\n  realm: 'ceapia',\r\n  clientId: 'prontuario-web',\r\n});\r\n\r\nexport const keycloakConfig: AuthClientInitOptions = {\r\n  onLoad: 'login-required',\r\n  checkLoginIframe: false,\r\n};\r\n","import { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) =>\r\n  createStyles({\r\n    root: {\r\n      background: '#fff',\r\n      color: '#696969',\r\n    },\r\n    grow: {\r\n      flexGrow: 1,\r\n      height: 'auto',\r\n    },\r\n    toolbar: {\r\n      padding: theme.spacing(0),\r\n    },\r\n    menuButton: {\r\n      marginRight: theme.spacing(2),\r\n    },\r\n    sectionDesktop: {\r\n      display: 'none',\r\n      [theme.breakpoints.up('md')]: {\r\n        display: 'flex',\r\n      },\r\n    },\r\n    sectionMobile: {\r\n      display: 'flex',\r\n      [theme.breakpoints.up('md')]: {\r\n        display: 'none',\r\n      },\r\n    },\r\n    logo: {\r\n      width: '15%',\r\n    },\r\n    icon: {\r\n      fontSize: 30,\r\n    },\r\n    avatar: {\r\n      width: theme.spacing(6),\r\n      height: theme.spacing(6),\r\n      background: theme.palette.primary.light,\r\n    },\r\n    link: {\r\n      color: 'inherit',\r\n      textDecoration: 'inherit',\r\n      width: 'auto',\r\n    },\r\n    notificationsMenu: {\r\n      width: 'auto',\r\n      maxWidth: '100%',\r\n      maxHeight: '250px',\r\n    },\r\n    notificationItem: {\r\n      color: '#696969',\r\n      '&:hover': {\r\n        background: 'hsl(206, 28%, 61%, 15%)',\r\n      },\r\n    },\r\n    notifications: {\r\n      padding: theme.spacing(3),\r\n    },\r\n    notificationsEnd: {\r\n      padding: theme.spacing(2),\r\n      display: 'flex',\r\n      flexDirection: 'column',\r\n      justifyContent: 'center',\r\n      alignItems: 'center',\r\n    },\r\n    iconButton: {\r\n      position: 'absolute',\r\n      right: 0,\r\n      top: '50%',\r\n      transform: 'translateY(-50%)',\r\n    },\r\n    menuItemLink: {\r\n      textDecoration: 'none',\r\n      color: 'inherit',\r\n      width: '100%',\r\n    },\r\n  }),\r\n);\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport { useKeycloak } from '@react-keycloak/web';\r\nimport moment from 'moment';\r\n\r\nimport {\r\n  ExitToApp,\r\n  Menu as MenuIcon,\r\n  Create,\r\n  Notifications,\r\n  NotificationsActive,\r\n  CheckCircleRounded as Check,\r\n  ThumbUpAlt,\r\n  Settings as Config,\r\n} from '@material-ui/icons';\r\n\r\nimport {\r\n  AppBar,\r\n  MenuItem,\r\n  Menu,\r\n  Toolbar,\r\n  IconButton,\r\n  Avatar,\r\n  Typography,\r\n  Container,\r\n  Badge,\r\n  ListItemText,\r\n  MenuList,\r\n  Divider,\r\n} from '@material-ui/core';\r\n\r\nimport { ListItem, Tooltip } from '@mui/material';\r\nimport { green } from '@material-ui/core/colors';\r\nimport { useStyles } from './styles';\r\nimport logo from '../../assets/Ceapia-02.png';\r\nimport { Notification } from '../../models/notification';\r\nimport { useAxios } from '../../utils/hooks';\r\nimport Snackbar, { AlertComponentProps } from '../Snackbar';\r\n\r\nconst Header: React.FC = () => {\r\n  const api = useAxios();\r\n  const classes = useStyles();\r\n  const history = useHistory();\r\n  const { keycloak, initialized } = useKeycloak();\r\n  const [notifications, setNotifications] = useState<Notification[]>([]);\r\n  const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n\r\n  const [alert, setAlert] = useState<\r\n    AlertComponentProps & { isActive: boolean }\r\n  >({\r\n    isActive: false,\r\n    type: 'info',\r\n    message: 'none',\r\n  });\r\n\r\n  const [mobileMoreAnchorEl, setMobileMoreAnchorEl] =\r\n    React.useState<null | HTMLElement>(null);\r\n\r\n  const [notificationAnchorEl, setNotificationAnchorEl] =\r\n    React.useState<null | HTMLElement>(null);\r\n\r\n  const isMenuOpen = Boolean(anchorEl);\r\n  const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\r\n  const isNotificationMenuOpen = Boolean(notificationAnchorEl);\r\n\r\n  useEffect(() => {\r\n    async function getNotifications() {\r\n      try {\r\n        const notificationsResponse = await api.current?.get('/notifications');\r\n\r\n        setNotifications(\r\n          notificationsResponse?.data.filter(\r\n            (notification: Notification) => !notification.read,\r\n          ),\r\n        );\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao carregar notificações.',\r\n        });\r\n      }\r\n    }\r\n\r\n    if (initialized) getNotifications();\r\n  }, [api, initialized]);\r\n\r\n  const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n    setAnchorEl(event.currentTarget);\r\n  };\r\n\r\n  const handleMobileMenuClose = () => {\r\n    setMobileMoreAnchorEl(null);\r\n  };\r\n\r\n  const handleNotificationMenuClose = () => {\r\n    setNotificationAnchorEl(null);\r\n  };\r\n\r\n  const handleMenuClose = () => {\r\n    setAnchorEl(null);\r\n    handleMobileMenuClose();\r\n  };\r\n\r\n  const handleMobileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n    setMobileMoreAnchorEl(event.currentTarget);\r\n  };\r\n\r\n  const handleNotificationOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n    setNotificationAnchorEl(event.currentTarget);\r\n  };\r\n\r\n  const handleReadNotification = useCallback(\r\n    async (notificationId: string) => {\r\n      try {\r\n        await api.current?.patch(`/notifications/${notificationId}`, {\r\n          read: true,\r\n        });\r\n\r\n        const currentNotifications = notifications;\r\n\r\n        const notificationIdx = currentNotifications.findIndex(\r\n          (n) => n._id === notificationId,\r\n        );\r\n\r\n        currentNotifications[notificationIdx] = {\r\n          ...currentNotifications[notificationIdx],\r\n          read: true,\r\n        };\r\n\r\n        setNotifications(\r\n          currentNotifications.filter((notification) => !notification.read),\r\n        );\r\n      } catch (error) {\r\n        setAlert({\r\n          isActive: true,\r\n          type: 'error',\r\n          message: 'Erro ao atualizar notificação.',\r\n        });\r\n      }\r\n    },\r\n    [api, notifications],\r\n  );\r\n\r\n  const renderMenu = (\r\n    <Menu\r\n      elevation={3}\r\n      anchorEl={anchorEl}\r\n      getContentAnchorEl={null}\r\n      keepMounted\r\n      anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\r\n      transformOrigin={{ vertical: 'top', horizontal: 'center' }}\r\n      open={isMenuOpen}\r\n      onClose={handleMenuClose}\r\n    >\r\n      <MenuItem\r\n        onClick={() => history.push('/assinatura')}\r\n        className={classes.root}\r\n      >\r\n        <Create />\r\n        Assinatura Digital\r\n      </MenuItem>\r\n\r\n      <MenuItem onClick={() => history.push('/conta')} className={classes.root}>\r\n        <Config />\r\n        Configurações\r\n      </MenuItem>\r\n\r\n      <MenuItem onClick={() => keycloak.logout()} className={classes.root}>\r\n        <ExitToApp />\r\n        Sair\r\n      </MenuItem>\r\n    </Menu>\r\n  );\r\n\r\n  const renderMobileMenu = (\r\n    <Menu\r\n      anchorEl={mobileMoreAnchorEl}\r\n      getContentAnchorEl={null}\r\n      keepMounted\r\n      open={isMobileMenuOpen}\r\n      onClose={handleMobileMenuClose}\r\n      anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\r\n      transformOrigin={{ vertical: 'top', horizontal: 'center' }}\r\n    >\r\n      <MenuItem\r\n        onClick={() => history.push('/assinatura')}\r\n        className={classes.root}\r\n      >\r\n        <Create />\r\n        Assinatura Digital\r\n      </MenuItem>\r\n\r\n      <MenuItem onClick={() => history.push('/conta')} className={classes.root}>\r\n        <Config />\r\n        Configurações\r\n      </MenuItem>\r\n\r\n      <MenuItem onClick={() => keycloak.logout()} className={classes.root}>\r\n        <ExitToApp />\r\n        Sair\r\n      </MenuItem>\r\n    </Menu>\r\n  );\r\n\r\n  const renderNotificationMenu = (\r\n    <Menu\r\n      anchorEl={notificationAnchorEl}\r\n      getContentAnchorEl={null}\r\n      keepMounted\r\n      open={isNotificationMenuOpen}\r\n      onClose={handleNotificationMenuClose}\r\n      anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\r\n      transformOrigin={{ vertical: 'top', horizontal: 'center' }}\r\n    >\r\n      <MenuList className={classes.notificationsMenu}>\r\n        {notifications.length > 0 &&\r\n          notifications.map((notification: Notification) => (\r\n            <div key={notification._id}>\r\n              <Divider color=\"primary\" style={{ width: '100%' }} />\r\n\r\n              <MenuItem className={classes.notificationItem}>\r\n                <Link\r\n                  to={new URL(notification.link).pathname}\r\n                  className={classes.menuItemLink}\r\n                >\r\n                  <ListItem\r\n                    /* prettier-ignore */\r\n                    secondaryAction={!notification.read && (\r\n                    <Tooltip title=\"Marcar como lida\">\r\n                      <IconButton className={classes.iconButton} edge=\"end\" aria-label=\"read\" onClick={() => handleReadNotification(notification._id)}>\r\n                        <Check style={{ color: green[700] }} />\r\n                        {/* <span style={{ fontSize: '0.5rem' }}>Marcar como lida</span> */}\r\n                      </IconButton>\r\n                    </Tooltip>\r\n                  )}\r\n                  >\r\n                    <ListItemText\r\n                      primary={notification.message}\r\n                      secondary={moment(notification.createdAt).format(\r\n                        'DD/MM/YYYY hh:mm',\r\n                      )}\r\n                    />\r\n                  </ListItem>\r\n                </Link>\r\n              </MenuItem>\r\n            </div>\r\n          ))}\r\n\r\n        <Divider color=\"primary\" style={{ width: '100%' }} />\r\n\r\n        <div className={classes.notificationsEnd}>\r\n          <ThumbUpAlt color=\"secondary\" />\r\n          <Typography className={classes.root}>Isso é tudo.</Typography>\r\n        </div>\r\n      </MenuList>\r\n    </Menu>\r\n  );\r\n\r\n  return (\r\n    <div className={classes.grow}>\r\n      <AppBar position=\"static\" className={classes.root}>\r\n        <Container>\r\n          <Toolbar className={classes.toolbar}>\r\n            <img src={logo} alt=\"logo ceapia\" className={classes.logo} />\r\n\r\n            <div className={classes.grow} />\r\n\r\n            {initialized && (\r\n              <>\r\n                <div className={classes.notifications}>\r\n                  <Tooltip title=\"Notificações\" placement=\"left\">\r\n                    <IconButton\r\n                      onClick={handleNotificationOpen}\r\n                      color=\"primary\"\r\n                    >\r\n                      <Badge\r\n                        badgeContent={\r\n                          notifications.filter(\r\n                            (notification) => !notification.read,\r\n                          ).length\r\n                        }\r\n                        color=\"primary\"\r\n                      >\r\n                        {notifications.length > 0 ? (\r\n                          <NotificationsActive color=\"action\" />\r\n                        ) : (\r\n                          <Notifications color=\"action\" />\r\n                        )}\r\n                      </Badge>\r\n                    </IconButton>\r\n                  </Tooltip>\r\n                </div>\r\n\r\n                <Typography className={classes.sectionDesktop}>\r\n                  {`Olá, ${\r\n                    // @ts-ignore\r\n                    keycloak?.idTokenParsed?.name\r\n                      ? // @ts-ignore\r\n                        keycloak?.idTokenParsed?.name\r\n                      : // @ts-ignore\r\n                        keycloak?.idTokenParsed?.preferred_username\r\n                  }`}\r\n                </Typography>\r\n              </>\r\n            )}\r\n\r\n            <div className={classes.sectionDesktop}>\r\n              <IconButton\r\n                onClick={handleProfileMenuOpen}\r\n                color=\"primary\"\r\n                size=\"medium\"\r\n              >\r\n                {initialized && (\r\n                  <Avatar className={classes.avatar}>\r\n                    {\r\n                      // @ts-ignore\r\n                      keycloak?.idTokenParsed?.preferred_username\r\n                        .split('')[0]\r\n                        .toUpperCase()\r\n                    }\r\n                  </Avatar>\r\n                )}\r\n              </IconButton>\r\n            </div>\r\n            <div className={classes.sectionMobile}>\r\n              <IconButton onClick={handleMobileMenuOpen} color=\"primary\">\r\n                <MenuIcon className={classes.icon} />\r\n              </IconButton>\r\n            </div>\r\n          </Toolbar>\r\n        </Container>\r\n      </AppBar>\r\n      {renderMobileMenu}\r\n      {renderMenu}\r\n      {renderNotificationMenu}\r\n\r\n      {alert.isActive && <Snackbar {...alert} />}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Header;\r\n","export default \"data:image/png;base64,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\"","import { Container, Typography } from '@material-ui/core';\r\nimport React from 'react';\r\n\r\ninterface TabPanelProps {\r\n  children: React.ReactNode;\r\n  index: any;\r\n  value: any;\r\n}\r\n\r\nconst TabPanel = (props: TabPanelProps) => {\r\n  const { children, value, index } = props;\r\n\r\n  return (\r\n    <div>\r\n      {value === index && (\r\n        <Container>\r\n          <Typography>{children}</Typography>\r\n        </Container>\r\n      )}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default TabPanel;\r\n","import { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) =>\r\n  createStyles({\r\n    root: {\r\n      background: theme.palette.background.default,\r\n      color: theme.palette.secondary.light,\r\n    },\r\n  }),\r\n);\r\n","import React, { useEffect } from 'react';\r\nimport { Link, LinkProps, useHistory, useLocation } from 'react-router-dom';\r\n\r\nimport { TabProps } from '@material-ui/core/Tab';\r\nimport { AppBar, Tabs, Tab } from '@material-ui/core';\r\n\r\nimport {\r\n  SupervisorAccount,\r\n  FileCopySharp,\r\n  Archive,\r\n  Person,\r\n  // Groups,\r\n  Approval,\r\n} from '@mui/icons-material';\r\n\r\nimport { useKeycloak } from '@react-keycloak/web';\r\nimport TabPanel from '../TabPanel';\r\n\r\nimport { useStyles } from './styles';\r\nimport { RealmRoles } from '../../routes';\r\n\r\nconst LinkTab: React.ComponentType<TabProps & LinkProps> =\r\n  Tab as React.ComponentType<TabProps & LinkProps>;\r\n\r\ninterface ITabs {\r\n  [key: string]: number;\r\n}\r\n\r\nconst tabs: ITabs = {\r\n  '/meus-prontuarios': 0,\r\n  '/supervisao': 1,\r\n  '/aprovacoes': 2,\r\n  '/prontuarios': 3,\r\n  '/pacientes': 4,\r\n  // '/setores': 5,\r\n  '/login': 0, // redirects to my-records tab\r\n  '/': 0, // redirects to my-records tab\r\n};\r\n\r\nconst Navbar: React.FC = () => {\r\n  const classes = useStyles();\r\n  const location = useLocation();\r\n  const history = useHistory();\r\n  const [mainTabValue, setMainTabValue] = React.useState(0);\r\n  const {\r\n    keycloak: { realmAccess },\r\n  } = useKeycloak();\r\n  const [recordTabValue, setRecordTabValue] = React.useState(\r\n    tabs[location.pathname],\r\n  );\r\n\r\n  const handleMainTabChange = (\r\n    event: React.ChangeEvent<any>,\r\n    newValue: number,\r\n  ) => {\r\n    setMainTabValue(newValue);\r\n  };\r\n\r\n  const handleRecordTabChange = (\r\n    event: React.ChangeEvent<any>,\r\n    newValue: number,\r\n  ) => {\r\n    setRecordTabValue(newValue);\r\n  };\r\n\r\n  useEffect(() => {\r\n    setRecordTabValue(tabs[location.pathname]);\r\n  }, [location]);\r\n\r\n  return (\r\n    <div>\r\n      <AppBar position=\"static\">\r\n        <Tabs\r\n          value={mainTabValue}\r\n          variant=\"fullWidth\"\r\n          onChange={handleMainTabChange}\r\n          indicatorColor=\"primary\"\r\n        >\r\n          <Tab\r\n            label=\"Prontuários\"\r\n            id=\"prontuarios\"\r\n            onClick={() => history.push('/')}\r\n          />\r\n        </Tabs>\r\n      </AppBar>\r\n\r\n      <TabPanel value={mainTabValue} index={0}>\r\n        {recordTabValue !== undefined && (\r\n          <AppBar position=\"static\" className={classes.root}>\r\n            <Tabs\r\n              value={recordTabValue}\r\n              variant=\"fullWidth\"\r\n              onChange={handleRecordTabChange}\r\n              indicatorColor=\"primary\"\r\n            >\r\n              <LinkTab\r\n                label=\"Meus Prontuários\"\r\n                icon={<FileCopySharp fontSize=\"small\" />}\r\n                component={Link}\r\n                to=\"/meus-prontuarios\"\r\n                style={{\r\n                  display: realmAccess?.roles.includes(RealmRoles.PROFESSIONAL)\r\n                    ? ''\r\n                    : 'none',\r\n                }}\r\n              />\r\n\r\n              <LinkTab\r\n                label=\"Supervisão / Preceptoria\"\r\n                icon={<SupervisorAccount fontSize=\"small\" />}\r\n                component={Link}\r\n                to=\"/supervisao\"\r\n                style={{\r\n                  display: realmAccess?.roles.includes(RealmRoles.SUPERVISOR)\r\n                    ? ''\r\n                    : 'none',\r\n                }}\r\n              />\r\n\r\n              <LinkTab\r\n                label=\"Aprovações\"\r\n                icon={<Approval fontSize=\"small\" />}\r\n                component={Link}\r\n                to=\"/aprovacoes\"\r\n                style={{\r\n                  display: realmAccess?.roles.includes(RealmRoles.APPROVER)\r\n                    ? ''\r\n                    : 'none',\r\n                }}\r\n              />\r\n\r\n              <LinkTab\r\n                label=\"Prontuários Ceapia\"\r\n                icon={<Archive fontSize=\"small\" />}\r\n                component={Link}\r\n                to=\"/prontuarios\"\r\n                style={{\r\n                  display: realmAccess?.roles.includes(RealmRoles.ADMIN)\r\n                    ? ''\r\n                    : 'none',\r\n                }}\r\n              />\r\n\r\n              <LinkTab\r\n                label=\"Pacientes\"\r\n                icon={<Person fontSize=\"small\" />}\r\n                component={Link}\r\n                to=\"/pacientes\"\r\n                style={{\r\n                  display:\r\n                    realmAccess?.roles.includes(RealmRoles.ADMIN) ||\r\n                    realmAccess?.roles.includes(RealmRoles.RESEARCH)\r\n                      ? ''\r\n                      : 'none',\r\n                }}\r\n              />\r\n\r\n              {/* <LinkTab\r\n                label=\"Setores\"\r\n                icon={<Groups fontSize=\"small\" />}\r\n                component={Link}\r\n                to=\"/setores\"\r\n                style={{\r\n                  display: realmAccess?.roles.includes(RealmRoles.ADMIN)\r\n                    ? ''\r\n                    : 'none',\r\n                }}\r\n              /> */}\r\n            </Tabs>\r\n          </AppBar>\r\n        )}\r\n      </TabPanel>\r\n\r\n      <TabPanel value={recordTabValue} index={0}>\r\n        <h2 className={classes.root}>Meus Prontuários</h2>\r\n      </TabPanel>\r\n      <TabPanel value={recordTabValue} index={1}>\r\n        <h2 className={classes.root}>Supervisão / Preceptoria</h2>\r\n      </TabPanel>\r\n      <TabPanel value={recordTabValue} index={2}>\r\n        <h2 className={classes.root}>Aprovações</h2>\r\n      </TabPanel>\r\n      <TabPanel value={recordTabValue} index={3}>\r\n        <h2 className={classes.root}>Prontuários Ceapia</h2>\r\n      </TabPanel>\r\n      <TabPanel value={recordTabValue} index={4}>\r\n        <h2 className={classes.root}>Pacientes</h2>\r\n      </TabPanel>\r\n\r\n      {/* <TabPanel value={recordTabValue} index={5}>\r\n        <h2 className={classes.root}>Setores</h2>\r\n      </TabPanel> */}\r\n    </div>\r\n  );\r\n};\r\n\r\nexport default Navbar;\r\n","import React from 'react';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { ReactKeycloakProvider } from '@react-keycloak/web';\r\nimport { Container, CssBaseline, ThemeProvider } from '@material-ui/core';\r\n\r\nimport appTheme from './theme';\r\nimport { AppRouter } from './routes';\r\n\r\nimport { keycloak, keycloakConfig } from './keycloak';\r\n\r\nimport Header from './components/Header';\r\nimport Navbar from './components/Navbar';\r\nimport Footer from './components/Footer';\r\n\r\nconst App: React.FC = () => {\r\n  const eventLogger = (event: unknown, error: unknown) => {\r\n    console.log('onKeycloakEvent', event, error);\r\n  };\r\n\r\n  const tokenLogger = (tokens: unknown) => {\r\n    console.log('onKeycloakTokens', tokens);\r\n  };\r\n\r\n  return (\r\n    <ReactKeycloakProvider\r\n      authClient={keycloak}\r\n      onEvent={eventLogger}\r\n      onTokens={tokenLogger}\r\n      initOptions={keycloakConfig}\r\n    >\r\n      <ThemeProvider theme={appTheme}>\r\n        <CssBaseline />\r\n        <BrowserRouter>\r\n          <Header />\r\n          <Navbar />\r\n          <Container>\r\n            <AppRouter />\r\n          </Container>\r\n          {/* <Footer /> */}\r\n        </BrowserRouter>\r\n      </ThemeProvider>\r\n    </ReactKeycloakProvider>\r\n  );\r\n};\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport App from './App';\r\n\r\nReactDOM.render(\r\n  <React.StrictMode>\r\n    <App />\r\n  </React.StrictMode>,\r\n  document.getElementById('root'),\r\n);\r\n"],"sourceRoot":""}