{"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,CA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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":""}