omniauth-sabia 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (985) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +40 -0
  3. data/Dockerfile +13 -0
  4. data/Gemfile +64 -0
  5. data/Gemfile.lock +315 -0
  6. data/README.rdoc +261 -0
  7. data/Rakefile +7 -0
  8. data/app.docker +13 -0
  9. data/app/assets/images/calc.png +0 -0
  10. data/app/assets/images/dds.png +0 -0
  11. data/app/assets/images/diabetes.png +0 -0
  12. data/app/assets/images/disturbiosadrenais.png +0 -0
  13. data/app/assets/images/disturbioscrescimento.png +0 -0
  14. data/app/assets/images/disturbiospuberais.png +0 -0
  15. data/app/assets/images/disturbiostireoidianos.png +0 -0
  16. data/app/assets/images/emblema.png +0 -0
  17. data/app/assets/images/geral.png +0 -0
  18. data/app/assets/images/huol_logo.png +0 -0
  19. data/app/assets/images/lais_logo.png +0 -0
  20. data/app/assets/images/logo.jpg +0 -0
  21. data/app/assets/images/miscelanea.png +0 -0
  22. data/app/assets/images/obesidadedislipidemias.png +0 -0
  23. data/app/assets/images/pdf.png +0 -0
  24. data/app/assets/images/pesquisa.png +0 -0
  25. data/app/assets/images/print.png +0 -0
  26. data/app/assets/images/select2/select2-spinner.gif +0 -0
  27. data/app/assets/images/select2/select2.png +0 -0
  28. data/app/assets/images/select2/select2x2.png +0 -0
  29. data/app/assets/images/uep-ufrn.JPG +0 -0
  30. data/app/assets/images/ufrn.jpg +0 -0
  31. data/app/assets/images/ufrn_logo.png +0 -0
  32. data/app/assets/javascripts/application.js +302 -0
  33. data/app/assets/javascripts/bootstrap/bootstrap.min.js +6 -0
  34. data/app/assets/javascripts/datepicker/bootstrap-datepicker.js +1671 -0
  35. data/app/assets/javascripts/datepicker/locales/bootstrap-datepicker.pt-BR.js +15 -0
  36. data/app/assets/javascripts/fullcalendar/fullcalendar.js +11898 -0
  37. data/app/assets/javascripts/fullcalendar/locales/pt-br.js +1 -0
  38. data/app/assets/javascripts/jquery-1.10.0.min.js +6 -0
  39. data/app/assets/javascripts/jquery-ui/jquery.maskedinput.min.js +7 -0
  40. data/app/assets/javascripts/jquery.onerror.js +33 -0
  41. data/app/assets/javascripts/moment.min.js +7 -0
  42. data/app/assets/javascripts/select2/select2.min.js +23 -0
  43. data/app/assets/javascripts/select2/select2_locale_pt-BR.js +18 -0
  44. data/app/assets/stylesheets/application.css +442 -0
  45. data/app/assets/stylesheets/bootstrap/bootstrap.min.css +7 -0
  46. data/app/assets/stylesheets/bootstrap/font-awesome.min.css +4 -0
  47. data/app/assets/stylesheets/bootstrap/font/FontAwesome.otf +0 -0
  48. data/app/assets/stylesheets/bootstrap/font/fontawesome-webfont.eot +0 -0
  49. data/app/assets/stylesheets/bootstrap/font/fontawesome-webfont.svg +655 -0
  50. data/app/assets/stylesheets/bootstrap/font/fontawesome-webfont.ttf +0 -0
  51. data/app/assets/stylesheets/bootstrap/font/fontawesome-webfont.woff +0 -0
  52. data/app/assets/stylesheets/bootstrap/font/fontawesome-webfont.woff2 +0 -0
  53. data/app/assets/stylesheets/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  54. data/app/assets/stylesheets/bootstrap/fonts/glyphicons-halflings-regular.svg +229 -0
  55. data/app/assets/stylesheets/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  56. data/app/assets/stylesheets/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  57. data/app/assets/stylesheets/bootstrap/subnav.css +143 -0
  58. data/app/assets/stylesheets/datepicker/datepicker3.css +790 -0
  59. data/app/assets/stylesheets/fonts/glyphicons-halflings-regular.eot +0 -0
  60. data/app/assets/stylesheets/fonts/glyphicons-halflings-regular.svg +229 -0
  61. data/app/assets/stylesheets/fonts/glyphicons-halflings-regular.ttf +0 -0
  62. data/app/assets/stylesheets/fonts/glyphicons-halflings-regular.woff +0 -0
  63. data/app/assets/stylesheets/fonts/texgyreadventor-regular-webfont.eot +0 -0
  64. data/app/assets/stylesheets/fonts/texgyreadventor-regular-webfont.svg +1410 -0
  65. data/app/assets/stylesheets/fonts/texgyreadventor-regular-webfont.ttf +0 -0
  66. data/app/assets/stylesheets/fonts/texgyreadventor-regular-webfont.woff +0 -0
  67. data/app/assets/stylesheets/fullcalendar/fullcalendar.css +1142 -0
  68. data/app/assets/stylesheets/pagination.css +0 -0
  69. data/app/assets/stylesheets/patologias.css.scss +3 -0
  70. data/app/assets/stylesheets/pdf.css +59 -0
  71. data/app/assets/stylesheets/select2/select2.bootstrap.css +87 -0
  72. data/app/assets/stylesheets/select2/select2.css +692 -0
  73. data/app/controllers/admin/cid_controller.rb +9 -0
  74. data/app/controllers/admin/medicos_controller.rb +67 -0
  75. data/app/controllers/admin/patologias_controller.rb +47 -0
  76. data/app/controllers/admin/relatorios_controller.rb +286 -0
  77. data/app/controllers/admin/tipo_exames_controller.rb +82 -0
  78. data/app/controllers/admin/unidades_saude_controller.rb +85 -0
  79. data/app/controllers/admin_controller.rb +17 -0
  80. data/app/controllers/agendamentos_controller.rb +101 -0
  81. data/app/controllers/alunos_controller.rb +88 -0
  82. data/app/controllers/api/consultas_controller.rb +13 -0
  83. data/app/controllers/api/mensagens_controller.rb +102 -0
  84. data/app/controllers/api/pacientes_controller.rb +15 -0
  85. data/app/controllers/api/teleconsultorias_controller.rb +19 -0
  86. data/app/controllers/api_controller.rb +31 -0
  87. data/app/controllers/application_controller.rb +24 -0
  88. data/app/controllers/assistencia_social/pacientes_controller.rb +37 -0
  89. data/app/controllers/cids_controller.rb +16 -0
  90. data/app/controllers/consultas_controller.rb +227 -0
  91. data/app/controllers/conta_controller.rb +22 -0
  92. data/app/controllers/doses_controller.rb +94 -0
  93. data/app/controllers/especialidades_controller.rb +91 -0
  94. data/app/controllers/exames_controller.rb +110 -0
  95. data/app/controllers/formacoes_controller.rb +91 -0
  96. data/app/controllers/impressos_controller.rb +97 -0
  97. data/app/controllers/medicacoes_controller.rb +89 -0
  98. data/app/controllers/mensagens_controller.rb +73 -0
  99. data/app/controllers/modelos_impressos_controller.rb +75 -0
  100. data/app/controllers/modulos_controller.rb +9 -0
  101. data/app/controllers/pacientes_controller.rb +175 -0
  102. data/app/controllers/padroes_oms_controller.rb +68 -0
  103. data/app/controllers/paginas_controller.rb +6 -0
  104. data/app/controllers/painel_controller.rb +30 -0
  105. data/app/controllers/percentis_controller.rb +92 -0
  106. data/app/controllers/profissionais_controller.rb +102 -0
  107. data/app/controllers/quadros_controller.rb +95 -0
  108. data/app/controllers/reavaliacoes_controller.rb +99 -0
  109. data/app/controllers/redefinir_senha_controller.rb +34 -0
  110. data/app/controllers/respostas_controller.rb +99 -0
  111. data/app/controllers/sessions_controller.rb +49 -0
  112. data/app/controllers/supervisao/pesquisas_controller.rb +170 -0
  113. data/app/controllers/supervisao_controller.rb +9 -0
  114. data/app/controllers/teleconsultorias_controller.rb +110 -0
  115. data/app/controllers/tipo_diabetes_controller.rb +85 -0
  116. data/app/controllers/tipo_exames_controller.rb +24 -0
  117. data/app/controllers/tipos_profissionais_controller.rb +85 -0
  118. data/app/controllers/unidades_saude_controller.rb +79 -0
  119. data/app/helpers/admin/cid_helper.rb +2 -0
  120. data/app/helpers/admin/medicos_helper.rb +2 -0
  121. data/app/helpers/admin/relatorios_helper.rb +13 -0
  122. data/app/helpers/admin/tipo_exames_helper.rb +2 -0
  123. data/app/helpers/admin/unidades_saude_helper.rb +2 -0
  124. data/app/helpers/admin_helper.rb +2 -0
  125. data/app/helpers/agendamentos_helper.rb +2 -0
  126. data/app/helpers/alunos_helper.rb +2 -0
  127. data/app/helpers/api/consultas_helper.rb +2 -0
  128. data/app/helpers/api/pacientes_helper.rb +2 -0
  129. data/app/helpers/application_helper.rb +103 -0
  130. data/app/helpers/assistencia_social/pacientes_helper.rb +2 -0
  131. data/app/helpers/cids_helper.rb +2 -0
  132. data/app/helpers/consultas_helper.rb +148 -0
  133. data/app/helpers/conta_helper.rb +2 -0
  134. data/app/helpers/doses_helper.rb +2 -0
  135. data/app/helpers/especialidades_helper.rb +2 -0
  136. data/app/helpers/exames_helper.rb +2 -0
  137. data/app/helpers/formacoes_helper.rb +2 -0
  138. data/app/helpers/impressos_helper.rb +2 -0
  139. data/app/helpers/medicacoes_helper.rb +2 -0
  140. data/app/helpers/mensagens_helper.rb +2 -0
  141. data/app/helpers/modelos_impressos_helper.rb +2 -0
  142. data/app/helpers/pacientes_helper.rb +2 -0
  143. data/app/helpers/padroes_oms_helper.rb +2 -0
  144. data/app/helpers/paginas_helper.rb +2 -0
  145. data/app/helpers/painel_helper.rb +2 -0
  146. data/app/helpers/patologias_helper.rb +2 -0
  147. data/app/helpers/percentis_helper.rb +2 -0
  148. data/app/helpers/profissionais_helper.rb +10 -0
  149. data/app/helpers/quadros_helper.rb +2 -0
  150. data/app/helpers/reavaliacoes_helper.rb +2 -0
  151. data/app/helpers/respostas_helper.rb +2 -0
  152. data/app/helpers/sessions_helper.rb +2 -0
  153. data/app/helpers/supervisao/pesquisas_helper.rb +2 -0
  154. data/app/helpers/supervisao_helper.rb +2 -0
  155. data/app/helpers/teleconsultorias_helper.rb +2 -0
  156. data/app/helpers/tipo_diabetes_helper.rb +2 -0
  157. data/app/helpers/tipos_exames_helper.rb +2 -0
  158. data/app/helpers/tipos_profissionais_helper.rb +2 -0
  159. data/app/helpers/unidades_saude_helper.rb +2 -0
  160. data/app/mailers/administracao_mailer.rb +6 -0
  161. data/app/mailers/application_mailer.rb +4 -0
  162. data/app/mailers/client_side_mailer.rb +27 -0
  163. data/app/mailers/duvidas_clinicas_mailer.rb +17 -0
  164. data/app/mailers/redefinir_senha_mailer.rb +10 -0
  165. data/app/mailers/supervisao_mailer.rb +11 -0
  166. data/app/models/agendamento.rb +16 -0
  167. data/app/models/aluno.rb +5 -0
  168. data/app/models/application_record.rb +3 -0
  169. data/app/models/cid.rb +14 -0
  170. data/app/models/cidade.rb +9 -0
  171. data/app/models/concentracao.rb +3 -0
  172. data/app/models/consulta.rb +102 -0
  173. data/app/models/consulta_autosave.rb +15 -0
  174. data/app/models/diagnostico.rb +4 -0
  175. data/app/models/dica.rb +2 -0
  176. data/app/models/dose.rb +15 -0
  177. data/app/models/dose_administrada.rb +16 -0
  178. data/app/models/dose_vacina.rb +4 -0
  179. data/app/models/especialidade.rb +10 -0
  180. data/app/models/estado.rb +2 -0
  181. data/app/models/exame.rb +13 -0
  182. data/app/models/formacao.rb +10 -0
  183. data/app/models/hipotese.rb +4 -0
  184. data/app/models/impresso.rb +16 -0
  185. data/app/models/marco.rb +3 -0
  186. data/app/models/marco_atingido.rb +4 -0
  187. data/app/models/medicacao.rb +32 -0
  188. data/app/models/mensagem.rb +37 -0
  189. data/app/models/modelo_impresso.rb +120 -0
  190. data/app/models/modulo.rb +20 -0
  191. data/app/models/paciente.rb +146 -0
  192. data/app/models/paciente_hosped.rb +2 -0
  193. data/app/models/padrao_oms_dias.rb +2 -0
  194. data/app/models/padrao_oms_meses.rb +2 -0
  195. data/app/models/patologia.rb +5 -0
  196. data/app/models/percentil.rb +53 -0
  197. data/app/models/perfil.rb +28 -0
  198. data/app/models/permissao.rb +4 -0
  199. data/app/models/profissional.rb +74 -0
  200. data/app/models/quadro.rb +36 -0
  201. data/app/models/reavaliacao.rb +22 -0
  202. data/app/models/recurso.rb +4 -0
  203. data/app/models/resposta.rb +4 -0
  204. data/app/models/teleconsultoria.rb +23 -0
  205. data/app/models/tipo_diabete.rb +9 -0
  206. data/app/models/tipo_exame.rb +37 -0
  207. data/app/models/tipo_insulina.rb +9 -0
  208. data/app/models/tipo_parto.rb +9 -0
  209. data/app/models/tipo_profissional.rb +10 -0
  210. data/app/models/token.rb +37 -0
  211. data/app/models/turno.rb +10 -0
  212. data/app/models/unidade_saude.rb +17 -0
  213. data/app/models/usuario.rb +69 -0
  214. data/app/models/vacina.rb +3 -0
  215. data/app/views/admin/cid/index.html.erb +62 -0
  216. data/app/views/admin/index.html.erb +17 -0
  217. data/app/views/admin/medicos/edit.html.erb +361 -0
  218. data/app/views/admin/medicos/index.html.erb +96 -0
  219. data/app/views/admin/medicos/new.html.erb +370 -0
  220. data/app/views/admin/medicos/show.html.erb +191 -0
  221. data/app/views/admin/patologias/edit.html.erb +90 -0
  222. data/app/views/admin/patologias/index.html.erb +81 -0
  223. data/app/views/admin/patologias/new.html.erb +90 -0
  224. data/app/views/admin/patologias/show.html.erb +34 -0
  225. data/app/views/admin/relatorios/ano_municipio.pdf.erb +19 -0
  226. data/app/views/admin/relatorios/ano_patologia.pdf.erb +19 -0
  227. data/app/views/admin/relatorios/index.html.erb +3 -0
  228. data/app/views/admin/relatorios/mes_ano.pdf.erb +24 -0
  229. data/app/views/admin/relatorios/patologia_mes_ano.pdf.erb +23 -0
  230. data/app/views/admin/tipo_exames/edit.html.erb +52 -0
  231. data/app/views/admin/tipo_exames/index.html.erb +67 -0
  232. data/app/views/admin/tipo_exames/new.html.erb +52 -0
  233. data/app/views/admin/tipo_exames/transferencia.html.erb +53 -0
  234. data/app/views/admin/unidades_saude/_form.html.erb +127 -0
  235. data/app/views/admin/unidades_saude/edit.html.erb +24 -0
  236. data/app/views/admin/unidades_saude/index.html.erb +75 -0
  237. data/app/views/admin/unidades_saude/new.html.erb +24 -0
  238. data/app/views/admin/unidades_saude/show.html.erb +41 -0
  239. data/app/views/administracao_mailer/cadastrar.html.erb +16 -0
  240. data/app/views/agendamentos/_new_agendamento.html.erb +208 -0
  241. data/app/views/agendamentos/edit.html.erb +109 -0
  242. data/app/views/agendamentos/index.html.erb +205 -0
  243. data/app/views/agendamentos/new.html.erb +209 -0
  244. data/app/views/agendamentos/show.html.erb +59 -0
  245. data/app/views/alunos/_form.html.erb +17 -0
  246. data/app/views/alunos/edit.html.erb +6 -0
  247. data/app/views/alunos/index.html.erb +21 -0
  248. data/app/views/alunos/new.html.erb +5 -0
  249. data/app/views/alunos/show.html.erb +5 -0
  250. data/app/views/api/index.html.erb +452 -0
  251. data/app/views/assistencia_social/pacientes/index.html.erb +137 -0
  252. data/app/views/client_side_mailer/report_problem.html.erb +24 -0
  253. data/app/views/consultas/_dados_paciente.html.erb +116 -0
  254. data/app/views/consultas/_quadro_clinico_inicial.html.erb +294 -0
  255. data/app/views/consultas/edit.html.erb +196 -0
  256. data/app/views/consultas/edit/_avaliacao_inicial.html.erb +394 -0
  257. data/app/views/consultas/graficos.print.erb +18 -0
  258. data/app/views/consultas/index.html.erb +124 -0
  259. data/app/views/consultas/new.html.erb +452 -0
  260. data/app/views/consultas/new/_analise_dietetica.html.erb +70 -0
  261. data/app/views/consultas/new/_avaliacao_inicial.html.erb +391 -0
  262. data/app/views/consultas/new/_carregar_autosave.html.erb +374 -0
  263. data/app/views/consultas/new/_carregar_consulta_anterior.html.erb +35 -0
  264. data/app/views/consultas/new/_conclusoes.html.erb +93 -0
  265. data/app/views/consultas/new/_consultas.html.erb +24 -0
  266. data/app/views/consultas/new/_desenvolvimento_neuropsicomotor.html.erb +125 -0
  267. data/app/views/consultas/new/_exame_clinico.html.erb +126 -0
  268. data/app/views/consultas/new/_exames_periodicos.html.erb +213 -0
  269. data/app/views/consultas/new/_impressos.html.erb +324 -0
  270. data/app/views/consultas/new/_medicacoes.html.erb +18 -0
  271. data/app/views/consultas/new/_medicacoes_diabetes.html.erb +417 -0
  272. data/app/views/consultas/new/_medicacoes_doses.html.erb +10 -0
  273. data/app/views/consultas/new/_medicacoes_suplementacoes.html.erb +10 -0
  274. data/app/views/consultas/new/_vacinacao.html.erb +153 -0
  275. data/app/views/consultas/show.html.erb +104 -0
  276. data/app/views/consultas/show.pdf.erb +41 -0
  277. data/app/views/consultas/show/html/_analise_dietetica.html.erb +101 -0
  278. data/app/views/consultas/show/html/_avaliacao_inicial.html.erb +265 -0
  279. data/app/views/consultas/show/html/_conclusoes.html.erb +127 -0
  280. data/app/views/consultas/show/html/_desenvolvimento_neuropsicomotor.html.erb +79 -0
  281. data/app/views/consultas/show/html/_exame_clinico.html.erb +148 -0
  282. data/app/views/consultas/show/html/_exames_periodicos.html.erb +28 -0
  283. data/app/views/consultas/show/html/_impressos.html.erb +108 -0
  284. data/app/views/consultas/show/html/_medicacoes.html.erb +13 -0
  285. data/app/views/consultas/show/html/_medicacoes_diabetes.html.erb +145 -0
  286. data/app/views/consultas/show/html/_medicacoes_doses.html.erb +10 -0
  287. data/app/views/consultas/show/html/_medicacoes_suplementacoes.html.erb +10 -0
  288. data/app/views/consultas/show/html/_teleconsultoria.html.erb +58 -0
  289. data/app/views/consultas/show/html/_vacinacao.html.erb +70 -0
  290. data/app/views/consultas/show/pdf/_analise_dietetica.pdf.erb +42 -0
  291. data/app/views/consultas/show/pdf/_avaliacao_inicial.pdf.erb +166 -0
  292. data/app/views/consultas/show/pdf/_conclusoes.pdf.erb +28 -0
  293. data/app/views/consultas/show/pdf/_dados_paciente.pdf.erb +6 -0
  294. data/app/views/consultas/show/pdf/_desenvolvimento_neuropsicomotor.pdf.erb +51 -0
  295. data/app/views/consultas/show/pdf/_exame_clinico.pdf.erb +47 -0
  296. data/app/views/consultas/show/pdf/_exames_periodicos.pdf.erb +23 -0
  297. data/app/views/consultas/show/pdf/_medicacoes.pdf.erb +13 -0
  298. data/app/views/consultas/show/pdf/_medicacoes_diabetes.pdf.erb +86 -0
  299. data/app/views/consultas/show/pdf/_medicacoes_doses.pdf.erb +4 -0
  300. data/app/views/consultas/show/pdf/_medicacoes_suplementacoes.pdf.erb +4 -0
  301. data/app/views/consultas/show/pdf/_vacinacao.pdf.erb +74 -0
  302. data/app/views/conta/index.html.erb +264 -0
  303. data/app/views/doses/_form.html.erb +37 -0
  304. data/app/views/doses/edit.html.erb +6 -0
  305. data/app/views/doses/index.html.erb +31 -0
  306. data/app/views/doses/new.html.erb +5 -0
  307. data/app/views/doses/show.html.erb +30 -0
  308. data/app/views/duvidas_clinicas_mailer/nova_duvida.html.erb +12 -0
  309. data/app/views/duvidas_clinicas_mailer/nova_resposta.erb +12 -0
  310. data/app/views/especialidades/_form.html.erb +27 -0
  311. data/app/views/especialidades/edit.html.erb +6 -0
  312. data/app/views/especialidades/index.html.erb +21 -0
  313. data/app/views/especialidades/new.html.erb +5 -0
  314. data/app/views/especialidades/show.html.erb +7 -0
  315. data/app/views/exames/_form.html.erb +33 -0
  316. data/app/views/exames/edit.html.erb +6 -0
  317. data/app/views/exames/index.html.erb +30 -0
  318. data/app/views/exames/index.pdf.erb +31 -0
  319. data/app/views/exames/new.html.erb +5 -0
  320. data/app/views/exames/show.html.erb +25 -0
  321. data/app/views/formacoes/_form.html.erb +27 -0
  322. data/app/views/formacoes/edit.html.erb +6 -0
  323. data/app/views/formacoes/index.html.erb +21 -0
  324. data/app/views/formacoes/new.html.erb +5 -0
  325. data/app/views/formacoes/show.html.erb +8 -0
  326. data/app/views/impressos/edit.html.erb +74 -0
  327. data/app/views/impressos/index.html.erb +2 -0
  328. data/app/views/impressos/new.html.erb +72 -0
  329. data/app/views/impressos/show.html.erb +28 -0
  330. data/app/views/impressos/show.pdf.erb +3 -0
  331. data/app/views/layouts/application.html.erb +174 -0
  332. data/app/views/layouts/area_publica.html.erb +45 -0
  333. data/app/views/layouts/assistencia_social.html.erb +125 -0
  334. data/app/views/layouts/layout.pdf.erb +16 -0
  335. data/app/views/layouts/layout.print.erb +48 -0
  336. data/app/views/layouts/mailer.html.erb +8 -0
  337. data/app/views/layouts/mailer.text.erb +1 -0
  338. data/app/views/layouts/pdf-footer.html.erb +18 -0
  339. data/app/views/layouts/pdf-header.html.erb +13 -0
  340. data/app/views/layouts/relatorios/estatisticos/footer.html.erb +0 -0
  341. data/app/views/layouts/relatorios/estatisticos/header.html.erb +25 -0
  342. data/app/views/layouts/relatorios/estatisticos/layout.pdf.erb +16 -0
  343. data/app/views/layouts/sessions.html.erb +27 -0
  344. data/app/views/medicacoes/_form.html.erb +45 -0
  345. data/app/views/medicacoes/edit.html.erb +6 -0
  346. data/app/views/medicacoes/index.html.erb +35 -0
  347. data/app/views/medicacoes/new.html.erb +5 -0
  348. data/app/views/medicacoes/show.html.erb +40 -0
  349. data/app/views/mensagens/_form.html.erb +29 -0
  350. data/app/views/mensagens/edit.html.erb +6 -0
  351. data/app/views/mensagens/index.html.erb +27 -0
  352. data/app/views/mensagens/new.html.erb +5 -0
  353. data/app/views/mensagens/show.html.erb +20 -0
  354. data/app/views/modelos_impressos/_ajuda.html.erb +31 -0
  355. data/app/views/modelos_impressos/edit.html.erb +106 -0
  356. data/app/views/modelos_impressos/index.html.erb +84 -0
  357. data/app/views/modelos_impressos/new.html.erb +97 -0
  358. data/app/views/modelos_impressos/show.html.erb +36 -0
  359. data/app/views/modulos/index.html.erb +16 -0
  360. data/app/views/pacientes/_form.html.erb +136 -0
  361. data/app/views/pacientes/busca_avancada.html.erb +50 -0
  362. data/app/views/pacientes/edit.html.erb +20 -0
  363. data/app/views/pacientes/index.html.erb +149 -0
  364. data/app/views/pacientes/marcos_adiantados.pdf.erb +39 -0
  365. data/app/views/pacientes/marcos_atrasados.pdf.erb +35 -0
  366. data/app/views/pacientes/new.html.erb +20 -0
  367. data/app/views/pacientes/show.html.erb +126 -0
  368. data/app/views/pacientes/show/_agendamentos.html.erb +50 -0
  369. data/app/views/pacientes/show/_consultas.html.erb +39 -0
  370. data/app/views/pacientes/show/_dados_basicos.html.erb +166 -0
  371. data/app/views/pacientes/show/_dados_clinicos_legados.html.erb +58 -0
  372. data/app/views/pacientes/show/_exames.html.erb +31 -0
  373. data/app/views/pacientes/show/_impressos.html.erb +108 -0
  374. data/app/views/pacientes/show/_quadro_clinico_inicial.html.erb +294 -0
  375. data/app/views/pacientes/show/_reavaliacoes.html.erb +41 -0
  376. data/app/views/paginas/navegador_incompativel.html.erb +17 -0
  377. data/app/views/painel/index.html.erb +176 -0
  378. data/app/views/profissionais/_form.html.erb +65 -0
  379. data/app/views/profissionais/edit.html.erb +6 -0
  380. data/app/views/profissionais/index.html.erb +45 -0
  381. data/app/views/profissionais/new.html.erb +5 -0
  382. data/app/views/profissionais/show.html.erb +63 -0
  383. data/app/views/quadros/edit.html.erb +179 -0
  384. data/app/views/quadros/index.html.erb +37 -0
  385. data/app/views/quadros/new.html.erb +331 -0
  386. data/app/views/quadros/show.html.erb +313 -0
  387. data/app/views/quadros/show.pdf.erb +172 -0
  388. data/app/views/reavaliacoes/_form.html.erb +160 -0
  389. data/app/views/reavaliacoes/edit.html.erb +3 -0
  390. data/app/views/reavaliacoes/index.html.erb +31 -0
  391. data/app/views/reavaliacoes/new.html.erb +9 -0
  392. data/app/views/reavaliacoes/show.html.erb +107 -0
  393. data/app/views/reavaliacoes/show.pdf.erb +77 -0
  394. data/app/views/redefinir_senha/edit.html.erb +94 -0
  395. data/app/views/redefinir_senha_mailer/redefinicao.html.erb +11 -0
  396. data/app/views/respostas/_form.html.erb +29 -0
  397. data/app/views/respostas/edit.html.erb +6 -0
  398. data/app/views/respostas/index.html.erb +27 -0
  399. data/app/views/respostas/new.html.erb +5 -0
  400. data/app/views/respostas/show.html.erb +20 -0
  401. data/app/views/sessions/new.html.erb +123 -0
  402. data/app/views/supervisao/index.html.erb +10 -0
  403. data/app/views/supervisao/pesquisas/consultas.html.erb +50 -0
  404. data/app/views/supervisao/pesquisas/new.html.erb +612 -0
  405. data/app/views/supervisao/pesquisas/pacientes.html.erb +47 -0
  406. data/app/views/supervisao_mailer/cadastrar.html.erb +16 -0
  407. data/app/views/supervisao_mailer/notificar_duvida_clinica.html.erb +12 -0
  408. data/app/views/teleconsultorias/_form.html.erb +23 -0
  409. data/app/views/teleconsultorias/edit.html.erb +6 -0
  410. data/app/views/teleconsultorias/index.html.erb +34 -0
  411. data/app/views/teleconsultorias/new.html.erb +13 -0
  412. data/app/views/teleconsultorias/show.html.erb +5 -0
  413. data/app/views/tipo_diabetes/_form.html.erb +21 -0
  414. data/app/views/tipo_diabetes/edit.html.erb +6 -0
  415. data/app/views/tipo_diabetes/index.html.erb +23 -0
  416. data/app/views/tipo_diabetes/new.html.erb +5 -0
  417. data/app/views/tipo_diabetes/show.html.erb +10 -0
  418. data/app/views/tipo_exames/edit.html.erb +2 -0
  419. data/app/views/tipo_exames/index.html.erb +2 -0
  420. data/app/views/tipo_exames/new.html.erb +2 -0
  421. data/app/views/tipo_exames/show.html.erb +2 -0
  422. data/app/views/tipos_profissionais/_form.html.erb +21 -0
  423. data/app/views/tipos_profissionais/edit.html.erb +6 -0
  424. data/app/views/tipos_profissionais/index.html.erb +23 -0
  425. data/app/views/tipos_profissionais/new.html.erb +5 -0
  426. data/app/views/tipos_profissionais/show.html.erb +8 -0
  427. data/app/views/unidades_saude/_form.html.erb +21 -0
  428. data/app/views/unidades_saude/edit.html.erb +6 -0
  429. data/app/views/unidades_saude/index.html.erb +23 -0
  430. data/app/views/unidades_saude/new.html.erb +5 -0
  431. data/app/views/unidades_saude/show.html.erb +10 -0
  432. data/bin/bundle +3 -0
  433. data/bin/rails +4 -0
  434. data/bin/rake +4 -0
  435. data/bin/setup +34 -0
  436. data/bin/update +29 -0
  437. data/config.ru +4 -0
  438. data/config/application.rb +20 -0
  439. data/config/boot.rb +3 -0
  440. data/config/cable.yml +9 -0
  441. data/config/cucumber.yml +8 -0
  442. data/config/environment.rb +5 -0
  443. data/config/environments/development.rb +54 -0
  444. data/config/environments/production.rb +86 -0
  445. data/config/environments/test.rb +42 -0
  446. data/config/environments/treinamento.rb +86 -0
  447. data/config/initializers/active_record_belongs_to_required_by_default.rb +1 -0
  448. data/config/initializers/application_controller_renderer.rb +6 -0
  449. data/config/initializers/assets.rb +34 -0
  450. data/config/initializers/backtrace_silencers.rb +7 -0
  451. data/config/initializers/callback_terminator.rb +1 -0
  452. data/config/initializers/cookies_serializer.rb +5 -0
  453. data/config/initializers/factory_girl_config.rb +3 -0
  454. data/config/initializers/filter_parameter_logging.rb +4 -0
  455. data/config/initializers/inflections.rb +45 -0
  456. data/config/initializers/mime_types.rb +5 -0
  457. data/config/initializers/new_framework_defaults.rb +23 -0
  458. data/config/initializers/omniauth.rb +7 -0
  459. data/config/initializers/paper_trail.rb +1 -0
  460. data/config/initializers/secret_token.rb +9 -0
  461. data/config/initializers/session_store.rb +3 -0
  462. data/config/initializers/setup_mail.rb +9 -0
  463. data/config/initializers/simple_form.rb +165 -0
  464. data/config/initializers/simple_form_bootstrap.rb +149 -0
  465. data/config/initializers/wicked_pdf.rb +7 -0
  466. data/config/initializers/will_paginate_array_fix.rb +1 -0
  467. data/config/initializers/wrap_parameters.rb +14 -0
  468. data/config/locales/en.bootstrap.yml +17 -0
  469. data/config/locales/en.yml +23 -0
  470. data/config/locales/pt-BR.yml +217 -0
  471. data/config/locales/simple_form.en.yml +31 -0
  472. data/config/puma.rb +47 -0
  473. data/config/routes.rb +125 -0
  474. data/config/schedule.rb +24 -0
  475. data/config/spring.rb +6 -0
  476. data/data.docker +6 -0
  477. data/db/backup/config.rb +32 -0
  478. data/db/backup/models/mysql_backup.rb +84 -0
  479. data/db/migrate/20120604175906_create_pacientes.rb +34 -0
  480. data/db/migrate/20120604175958_create_especialidades.rb +9 -0
  481. data/db/migrate/20120604180437_create_tipos_profissionais.rb +9 -0
  482. data/db/migrate/20120604181253_create_profissionais.rb +24 -0
  483. data/db/migrate/20120604182754_create_agendamentos.rb +13 -0
  484. data/db/migrate/20120604185707_create_formacoes.rb +9 -0
  485. data/db/migrate/20120606191632_create_consultas.rb +57 -0
  486. data/db/migrate/20120606202227_create_usuarios.rb +13 -0
  487. data/db/migrate/20120607113309_create_quadros.rb +18 -0
  488. data/db/migrate/20120607120139_create_tipo_diabetes.rb +9 -0
  489. data/db/migrate/20120607185247_create_exames.rb +13 -0
  490. data/db/migrate/20120607185745_create_tipo_exames.rb +10 -0
  491. data/db/migrate/20120608133535_create_medicacoes.rb +15 -0
  492. data/db/migrate/20120608134843_create_doses.rb +18 -0
  493. data/db/migrate/20120608141134_create_tipo_insulinas.rb +9 -0
  494. data/db/migrate/20120618013135_create_unidades_saude.rb +12 -0
  495. data/db/migrate/20120622012230_create_reavaliacoes.rb +13 -0
  496. data/db/migrate/20120712213549_create_recursos.rb +11 -0
  497. data/db/migrate/20120712213726_create_perfis.rb +9 -0
  498. data/db/migrate/20120712213812_create_permissoes.rb +10 -0
  499. data/db/migrate/20120714015420_create_versions.rb +18 -0
  500. data/db/migrate/20120716225507_create_respostas.rb +11 -0
  501. data/db/migrate/20120717121640_create_padroes_oms_dias.rb +20 -0
  502. data/db/migrate/20120717150014_create_padroes_oms_meses.rb +22 -0
  503. data/db/migrate/20120731194538_create_profissionais_unidades_saude.rb +13 -0
  504. data/db/migrate/20120807193616_create_pacientes_hosped.rb +33 -0
  505. data/db/migrate/20120902231308_create_concentracoes.rb +10 -0
  506. data/db/migrate/20130127214243_create_modelos_receitas.rb +10 -0
  507. data/db/migrate/20130127214318_create_receitas.rb +12 -0
  508. data/db/migrate/20130329143219_create_perfis_usuarios.rb +11 -0
  509. data/db/migrate/20130530193921_add_peso_to_reavaliacoes.rb +9 -0
  510. data/db/migrate/20130531004631_add_medico_to_reavaliacoes.rb +9 -0
  511. data/db/migrate/20130531230024_add_cartao_sus_to_pacientes.rb +9 -0
  512. data/db/migrate/20130602230010_delete_modelo_from_receitas.rb +9 -0
  513. data/db/migrate/20131001190150_rename_perfil_aluno.rb +9 -0
  514. data/db/migrate/20140128162226_add_redefinirsenha_to_usuario.rb +8 -0
  515. data/db/migrate/20140204201145_add_resposta_vista_to_consulta.rb +6 -0
  516. data/db/migrate/20140218172542_insert_new_perfis.rb +11 -0
  517. data/db/migrate/20140218172554_insert_new_recurso.rb +9 -0
  518. data/db/migrate/20140218172603_insert_new_permissoes.rb +21 -0
  519. data/db/migrate/20140218205922_add_codigo_cnes_to_unidades_saude.rb +6 -0
  520. data/db/migrate/20140218212214_add_discutido_com_to_consulta.rb +5 -0
  521. data/db/migrate/20140321140331_create_modulos.rb +13 -0
  522. data/db/migrate/20140331132144_create_usuarios_modulos.rb +8 -0
  523. data/db/migrate/20140331132322_insert_new_modulo.rb +15 -0
  524. data/db/migrate/20140416105956_populate_patologias.rb +14 -0
  525. data/db/migrate/20140416112617_create_consultas_diabetes.rb +10 -0
  526. data/db/migrate/20140416113123_migrate_from_consultas_to_consultas_diabetes.rb +15 -0
  527. data/db/migrate/20140416113722_remove_columns_from_consultas.rb +9 -0
  528. data/db/migrate/20140416130543_insert_modulo_geral_to_modulos.rb +15 -0
  529. data/db/migrate/20140416131458_create_consultas_gerals.rb +9 -0
  530. data/db/migrate/20140421235340_add_modulo_id_to_agendamentos.rb +5 -0
  531. data/db/migrate/20140422001033_migrate_consultas_modulos_to_agendamentos.rb +21 -0
  532. data/db/migrate/20140422003735_add_modulo_id_to_consultas.rb +5 -0
  533. data/db/migrate/20140422004136_migrate_consultas_modulos_to_consultas.rb +23 -0
  534. data/db/migrate/20140422194237_rename_tipo_insulina_detemir.rb +15 -0
  535. data/db/migrate/20140422232713_populate_modulos_usuarios.rb +13 -0
  536. data/db/migrate/20140426192239_add_consulta_diabetes_id_to_medicacoes.rb +5 -0
  537. data/db/migrate/20140426193405_migrate_medicacoes_from_consulta_id_to_consulta_diabetes_id.rb +12 -0
  538. data/db/migrate/20140426215729_remove_consulta_id_from_medicacoes.rb +9 -0
  539. data/db/migrate/20140427001832_add_column_medicacoes_doses_to_consultas_gerals.rb +9 -0
  540. data/db/migrate/20140430030336_add_column_ordem_to_modulos.rb +9 -0
  541. data/db/migrate/20140430030622_define_ordem_modulos.rb +15 -0
  542. data/db/migrate/20140430133816_add_index_to_unidades_saude.rb +9 -0
  543. data/db/migrate/20140606171624_populate_modulos.rb +22 -0
  544. data/db/migrate/20140606174108_populate_patologias_to_modulos.rb +74 -0
  545. data/db/migrate/20140617210604_create_consultas_disturbioscrescimentos.rb +10 -0
  546. data/db/migrate/20140617210618_create_consultas_disturbiostireoidianos.rb +10 -0
  547. data/db/migrate/20140617210627_create_consultas_disturbiospuberais.rb +10 -0
  548. data/db/migrate/20140617210652_create_consultas_obesidadedislipidemias.rb +10 -0
  549. data/db/migrate/20140617210701_create_consultas_disturbiosadrenais.rb +10 -0
  550. data/db/migrate/20140617210707_create_consultas_dds.rb +10 -0
  551. data/db/migrate/20140617210716_create_consultas_miscelaneas.rb +10 -0
  552. data/db/migrate/20140618124153_rename_column_outra_forma_to_hipotese_diagnostica.rb +8 -0
  553. data/db/migrate/20140618124311_update_quadros.rb +11 -0
  554. data/db/migrate/20140618154110_add_modulo_id_to_quadro.rb +6 -0
  555. data/db/migrate/20140618154430_insert_data_into_modulo_id_at_quadros.rb +12 -0
  556. data/db/migrate/20140619125935_add_column_medicacoes_doses_to_consultas.rb +11 -0
  557. data/db/migrate/20140619132301_add_column_usuario_padrao_to_usuario.rb +5 -0
  558. data/db/migrate/20140619132434_create_alunos.rb +11 -0
  559. data/db/migrate/20140619193806_add_aluno_to_consulta.rb +6 -0
  560. data/db/migrate/20140619194153_add_unique_cpf_index_to_aluno.rb +5 -0
  561. data/db/migrate/20141219133938_create_tokens.rb +10 -0
  562. data/db/migrate/20141219133948_add_tokens.rb +12 -0
  563. data/db/migrate/20150215140918_create_consulta_autosaves.rb +12 -0
  564. data/db/migrate/20150217214135_alterar_nomes_modulos.rb +17 -0
  565. data/db/migrate/20150218114047_add_nomes_curtos_aos_modulos.rb +22 -0
  566. data/db/migrate/20150225022412_calcular_imc.rb +25 -0
  567. data/db/migrate/20150620210353_create_turnos.rb +10 -0
  568. data/db/migrate/20150620210451_add_turno_to_agendamentos.rb +5 -0
  569. data/db/migrate/20150620210759_add_turnos.rb +15 -0
  570. data/db/migrate/20150704002356_add_cnes_hosped.rb +9 -0
  571. data/db/migrate/20150704141144_add_cns_profissionais.rb +9 -0
  572. data/db/migrate/20150704213555_create_estados.rb +10 -0
  573. data/db/migrate/20150704215000_populate_estados.rb +37 -0
  574. data/db/migrate/20150704215905_create_cidades.rb +11 -0
  575. data/db/migrate/20150704215933_add_cidades_iniciais.rb +14 -0
  576. data/db/migrate/20150704230348_add_cidade_to_unidades_saude.rb +11 -0
  577. data/db/migrate/20150704230551_associate_cidades_unidades_saude.rb +14 -0
  578. data/db/migrate/20150704231859_update_dados_nova_caico.rb +11 -0
  579. data/db/migrate/20150708002211_add_codigo_estados.rb +9 -0
  580. data/db/migrate/20150708002409_populate_codigos_estados.rb +37 -0
  581. data/db/migrate/20150708003613_fix_codigos_cidades.rb +11 -0
  582. data/db/migrate/20150718191808_add_cid_ciap2_to_patologias.rb +11 -0
  583. data/db/migrate/20150718194818_add_cbo_to_profissionais.rb +5 -0
  584. data/db/migrate/20150802181337_create_cids.rb +10 -0
  585. data/db/migrate/20150802181408_populate_cids.rb +14243 -0
  586. data/db/migrate/20150802194134_create_diagnosticos.rb +10 -0
  587. data/db/migrate/20150803171312_create_hipoteses.rb +10 -0
  588. data/db/migrate/20150817002141_add_ativo_to_usuarios.rb +6 -0
  589. data/db/migrate/20150912172700_add_sono_to_consulta.rb +6 -0
  590. data/db/migrate/20150921173214_insert_assistente_social_into_perfis.rb +9 -0
  591. data/db/migrate/20151017141750_add_santa_cruz_to_cidades.rb +13 -0
  592. data/db/migrate/20151025200559_add_cabecalho_rodape_to_unidades_saude.rb +6 -0
  593. data/db/migrate/20151112003729_unificar_consultas.rb +129 -0
  594. data/db/migrate/20151112132030_associar_medicacoes_a_consultas.rb +28 -0
  595. data/db/migrate/20151121194508_add_sc_to_consultas.rb +5 -0
  596. data/db/migrate/20151121203337_add_acantose_to_consultas.rb +5 -0
  597. data/db/migrate/20151129205606_renomear_perfil_agendador.rb +15 -0
  598. data/db/migrate/20151129213429_add_recurso_painel.rb +12 -0
  599. data/db/migrate/20151129213440_add_recurso_pacientes.rb +12 -0
  600. data/db/migrate/20151129213450_add_recurso_consultas.rb +12 -0
  601. data/db/migrate/20151129214020_add_slug_to_perfis.rb +25 -0
  602. data/db/migrate/20151129215016_add_recurso_agendamentos.rb +12 -0
  603. data/db/migrate/20151129215118_conceder_permissoes.rb +40 -0
  604. data/db/migrate/20151129220444_add_recurso_realizar_consulta.rb +18 -0
  605. data/db/migrate/20151203003144_add_campos_pacientes.rb +10 -0
  606. data/db/migrate/20151207141439_unificar_quadros.rb +90 -0
  607. data/db/migrate/20151213152147_delete_campos_quadros.rb +9 -0
  608. data/db/migrate/20151230112200_add_campos_quadro_clinico_inicial.rb +93 -0
  609. data/db/migrate/20151230114801_create_tipo_partos.rb +9 -0
  610. data/db/migrate/20151230114826_add_tipos_partos.rb +11 -0
  611. data/db/migrate/20160105232035_rename_aleitamento_quadros.rb +5 -0
  612. data/db/migrate/20160207174548_create_marcos.rb +12 -0
  613. data/db/migrate/20160207175802_add_marcos_desenvolvimento.rb +54 -0
  614. data/db/migrate/20160207184107_create_marcos_atingidos.rb +12 -0
  615. data/db/migrate/20160215195926_create_vacinas.rb +10 -0
  616. data/db/migrate/20160215204936_create_doses_vacinas.rb +14 -0
  617. data/db/migrate/20160215204948_add_vacinas_doses.rb +69 -0
  618. data/db/migrate/20160221153015_create_doses_administradas.rb +12 -0
  619. data/db/migrate/20160228195102_abarcar_pediatria_geral.rb +20 -0
  620. data/db/migrate/20160228212607_delete_modulo_consultas.rb +9 -0
  621. data/db/migrate/20160228213050_delete_modulo_consultas_autosave.rb +9 -0
  622. data/db/migrate/20160312210832_add_circunferencia_abdominal.rb +5 -0
  623. data/db/migrate/20160312220545_create_percentis.rb +14 -0
  624. data/db/migrate/20160312220619_popular_percentis_ca.rb +184 -0
  625. data/db/migrate/20160318143102_add_suplementacoes_to_consultas.rb +5 -0
  626. data/db/migrate/20160318200501_rename_dentes.rb +9 -0
  627. data/db/migrate/20160325001139_remove_modulo_id_from_agendamentos.rb +9 -0
  628. data/db/migrate/20160328155220_create_dicas.rb +10 -0
  629. data/db/migrate/20160328155247_add_dica_circunferencia_abdominal.rb +11 -0
  630. data/db/migrate/20160410194636_popular_percentis_estatura.rb +3387 -0
  631. data/db/migrate/20160417162558_rename_receitas_to_impressos.rb +9 -0
  632. data/db/migrate/20160417171627_rename_modelos_receitas_to_modelos_impressos.rb +9 -0
  633. data/db/migrate/20160421162612_redefinir_fragmentos.rb +40 -0
  634. data/db/migrate/20160430154000_add_paciente_to_impressos.rb +9 -0
  635. data/db/migrate/20160430200534_associar_impressos_to_pacientes.rb +18 -0
  636. data/db/migrate/20160430200657_remover_coluna_consulta_em_impressos.rb +9 -0
  637. data/db/migrate/20160501230953_add_profissional_to_impressos.rb +9 -0
  638. data/db/migrate/20160503143335_alterar_especialidades.rb +42 -0
  639. data/db/migrate/20160503144422_create_teleconsultorias.rb +12 -0
  640. data/db/migrate/20160503150737_create_mensagens.rb +11 -0
  641. data/db/migrate/20160505165932_add_fields_to_tokens.rb +9 -0
  642. data/db/migrate/20160505170629_gerar_tokens_para_usuarios.rb +13 -0
  643. data/db/migrate/20160605215842_add_arquivo_to_mensagens.rb +11 -0
  644. data/db/migrate/20160730182728_add_paciente_consulta_to_teleconsultorias.rb +6 -0
  645. data/db/migrate/20160813135057_add_campos_vacinacao_desenvolvimento_to_consultas.rb +7 -0
  646. data/db/migrate/20160813141145_adaptar_novos_campos_consultas.rb +54 -0
  647. data/db/migrate/20160813142420_remover_campos_obsoletos_consultas.rb +11 -0
  648. data/db/migrate/20160813160917_renomear_campos_consultas.rb +11 -0
  649. data/db/migrate/20170524123533_add_foreign_keys_to_agendamentos.rb +15 -0
  650. data/db/migrate/20170524124120_add_foreign_keys_to_cidades.rb +9 -0
  651. data/db/migrate/20170524124417_add_foreign_keys_to_consulta_autosaves.rb +11 -0
  652. data/db/migrate/20170524124536_add_foreign_keys_to_consultas.rb +23 -0
  653. data/db/migrate/20170524131536_add_foreign_keys_to_diagnosticos.rb +15 -0
  654. data/db/migrate/20170524131856_add_foreign_keys_to_doses.rb +13 -0
  655. data/db/migrate/20170524132008_add_foreign_keys_to_doses_administradas.rb +11 -0
  656. data/db/migrate/20170524132049_add_foreign_keys_to_doses_vacinas.rb +9 -0
  657. data/db/migrate/20170524132140_add_foreign_keys_to_hipoteses.rb +11 -0
  658. data/db/migrate/20170524132219_add_foreign_keys_to_impressos.rb +11 -0
  659. data/db/migrate/20170524132307_add_foreign_keys_to_marcos_atingidos.rb +11 -0
  660. data/db/migrate/20170524132348_add_foreign_keys_to_medicacoes.rb +13 -0
  661. data/db/migrate/20170524132845_add_foreign_keys_to_patologias.rb +9 -0
  662. data/db/migrate/20170524132945_add_foreign_keys_to_perfis_usuarios.rb +11 -0
  663. data/db/migrate/20170524133040_add_foreign_keys_to_permissoes.rb +15 -0
  664. data/db/migrate/20170525102348_add_foreign_keys_to_profissionais.rb +11 -0
  665. data/db/migrate/20170525102825_add_foreign_keys_to_profissionais_unidades_saude.rb +15 -0
  666. data/db/migrate/20170525103012_add_foreign_keys_to_quadros.rb +13 -0
  667. data/db/migrate/20170525103102_add_foreign_keys_to_reavaliacoes.rb +15 -0
  668. data/db/migrate/20170525103414_add_foreign_keys_to_respostas.rb +11 -0
  669. data/db/migrate/20170525104429_add_foreign_keys_to_tipo_exames.rb +9 -0
  670. data/db/migrate/20170525104602_add_foreign_keys_to_tokens.rb +9 -0
  671. data/db/migrate/20170525104642_add_foreign_keys_to_unidades_saude.rb +9 -0
  672. data/db/migrate/20170529151633_add_not_null_to_agendamentos.rb +13 -0
  673. data/db/migrate/20170529155113_add_not_null_to_alunos.rb +15 -0
  674. data/db/migrate/20170529155217_add_not_null_to_cidades.rb +13 -0
  675. data/db/migrate/20170529155308_add_not_null_to_cids.rb +11 -0
  676. data/db/migrate/20170529155444_add_not_null_to_concentracoes.rb +11 -0
  677. data/db/migrate/20170529155542_add_not_null_to_consulta_autosaves.rb +13 -0
  678. data/db/migrate/20170529155705_add_not_null_to_diagnosticos.rb +9 -0
  679. data/db/migrate/20170529155912_add_not_null_to_dicas.rb +11 -0
  680. data/db/migrate/20170529160035_add_not_null_to_doses.rb +27 -0
  681. data/db/migrate/20170529160338_add_not_null_to_doses_administradas.rb +15 -0
  682. data/db/migrate/20170529160609_add_not_null_to_doses_vacinas.rb +13 -0
  683. data/db/migrate/20170529160753_add_not_null_to_especialidades.rb +9 -0
  684. data/db/migrate/20170529160838_add_not_null_to_estados.rb +11 -0
  685. data/db/migrate/20170529160929_add_not_null_to_exames.rb +17 -0
  686. data/db/migrate/20170529161048_add_not_null_to_feedbacks.rb +15 -0
  687. data/db/migrate/20170529161138_add_not_null_to_formacoes.rb +9 -0
  688. data/db/migrate/20170529161221_add_not_null_to_hipoteses.rb +11 -0
  689. data/db/migrate/20170529161308_add_not_null_to_impressos.rb +13 -0
  690. data/db/migrate/20170529161428_add_not_null_to_marcos.rb +15 -0
  691. data/db/migrate/20170529161535_add_not_null_to_marcos_atingidos.rb +15 -0
  692. data/db/migrate/20170529161637_add_not_null_to_medicacoes.rb +17 -0
  693. data/db/migrate/20170529161823_add_not_null_to_mensagens.rb +23 -0
  694. data/db/migrate/20170529161946_add_not_null_to_modelos_impressos.rb +11 -0
  695. data/db/migrate/20170529162037_add_not_null_to_modulos.rb +15 -0
  696. data/db/migrate/20170529162137_add_not_null_to_modulos_usuarios.rb +11 -0
  697. data/db/migrate/20170529162228_add_not_null_to_pacientes.rb +11 -0
  698. data/db/migrate/20170529162429_add_not_null_to_padroes_oms_dias.rb +31 -0
  699. data/db/migrate/20170529162642_add_not_null_to_padroes_oms_meses.rb +33 -0
  700. data/db/migrate/20170529162832_add_not_null_to_patologias.rb +11 -0
  701. data/db/migrate/20170529162918_add_not_null_to_percentis.rb +19 -0
  702. data/db/migrate/20170529163048_add_not_null_to_perfis.rb +11 -0
  703. data/db/migrate/20170529163141_add_not_null_to_perfis_usuarios.rb +11 -0
  704. data/db/migrate/20170529163238_add_not_null_to_permissoes.rb +11 -0
  705. data/db/migrate/20170529163321_add_not_null_to_profissionais.rb +35 -0
  706. data/db/migrate/20170529163541_add_not_null_to_profissionais_unidade_saude.rb +11 -0
  707. data/db/migrate/20170529163707_add_not_null_to_reavaliacoes.rb +15 -0
  708. data/db/migrate/20170529163847_add_not_null_to_recursos.rb +13 -0
  709. data/db/migrate/20170529163954_add_not_null_to_respostas.rb +13 -0
  710. data/db/migrate/20170529164223_add_not_null_to_tipo_diabetes.rb +9 -0
  711. data/db/migrate/20170529164310_add_not_null_to_tipo_exames.rb +11 -0
  712. data/db/migrate/20170529164405_add_not_null_to_tipo_insulinas.rb +9 -0
  713. data/db/migrate/20170529164448_add_not_null_to_tipo_partos.rb +9 -0
  714. data/db/migrate/20170529164527_add_not_null_to_tipos_profissionais.rb +9 -0
  715. data/db/migrate/20170529164641_add_not_null_to_tokens.rb +9 -0
  716. data/db/migrate/20170529164726_add_not_null_to_turnos.rb +11 -0
  717. data/db/migrate/20170529164807_add_not_null_to_unidades_saude.rb +13 -0
  718. data/db/migrate/20170529164903_add_not_null_to_usuarios.rb +21 -0
  719. data/db/migrate/20170529165019_add_not_null_to_vacinas.rb +11 -0
  720. data/db/migrate/20170606130311_drop_teleconsultorias_table.rb +14 -0
  721. data/db/migrate/20170606131217_create_teleconsultorias_table.rb +18 -0
  722. data/db/migrate/20170608112630_insert_new_recurso_teleconsultoria.rb +9 -0
  723. data/db/migrate/20170608112758_insert_new_permissao_teleconsultoria.rb +19 -0
  724. data/db/pacientes_hosped.sql +3795 -0
  725. data/db/padroes_oms_dias.sql +7430 -0
  726. data/db/padroes_oms_meses.sql +1159 -0
  727. data/db/schema.rb +834 -0
  728. data/db/seeds.rb +137 -0
  729. data/db/seeds/.DS_Store +0 -0
  730. data/db/seeds/agendamentos.json +37587 -0
  731. data/db/seeds/agendamentos_import.rb +31 -0
  732. data/db/seeds/correcao_horario.rb +32 -0
  733. data/doc/README_FOR_APP +2 -0
  734. data/doc/dicionario.odt +0 -0
  735. data/doc/erd.pdf +0 -0
  736. data/docker-compose.yml +25 -0
  737. data/features/paciente.feature +17 -0
  738. data/features/step_definitions/.gitkeep +0 -0
  739. data/features/step_definitions/generic_steps.rb +16 -0
  740. data/features/step_definitions/paciente_steps.rb +33 -0
  741. data/features/support/env.rb +59 -0
  742. data/features/support/factories.rb +27 -0
  743. data/features/support/seed.rb +131 -0
  744. data/lib/api_authentication.rb +20 -0
  745. data/lib/assets/.gitkeep +0 -0
  746. data/lib/authentication.rb +50 -0
  747. data/lib/calendario_agendamentos.rb +34 -0
  748. data/lib/sql_builder.rb +103 -0
  749. data/lib/tasks/.gitkeep +0 -0
  750. data/lib/tasks/agendamentos_correcao.rake +11 -0
  751. data/lib/tasks/agendamentos_import.rake +11 -0
  752. data/lib/tasks/cucumber.rake +76 -0
  753. data/lib/tasks/db.rake +24 -0
  754. data/lib/tasks/reload.rake +45 -0
  755. data/lib/templates/erb/scaffold/_form.html.erb +13 -0
  756. data/public/404.html +27 -0
  757. data/public/422.html +26 -0
  758. data/public/500.html +26 -0
  759. data/public/favicon.ico +0 -0
  760. data/public/robots.txt +5 -0
  761. data/script/cucumber +10 -0
  762. data/script/rails +6 -0
  763. data/script/rails.prej +2 -0
  764. data/test/fixtures/.gitkeep +0 -0
  765. data/test/fixtures/agendamentos.yml +11 -0
  766. data/test/fixtures/alunos.yml +11 -0
  767. data/test/fixtures/analises_dieteticas.yml +13 -0
  768. data/test/fixtures/cidades.yml +11 -0
  769. data/test/fixtures/cids.yml +9 -0
  770. data/test/fixtures/concentracoes.yml +9 -0
  771. data/test/fixtures/consulta_autosaves.yml +11 -0
  772. data/test/fixtures/consultas.yml +23 -0
  773. data/test/fixtures/consultas_dds.yml +11 -0
  774. data/test/fixtures/consultas_diabetes.yml +11 -0
  775. data/test/fixtures/consultas_disturbiosadrenais.yml +11 -0
  776. data/test/fixtures/consultas_disturbioscrescimentos.yml +11 -0
  777. data/test/fixtures/consultas_disturbiospuberais.yml +11 -0
  778. data/test/fixtures/consultas_disturbiostireoidianos.yml +11 -0
  779. data/test/fixtures/consultas_gerals.yml +11 -0
  780. data/test/fixtures/consultas_miscelaneas.yml +11 -0
  781. data/test/fixtures/consultas_obesidadedislipidemias.yml +11 -0
  782. data/test/fixtures/diagnosticos.yml +9 -0
  783. data/test/fixtures/dicas.yml +9 -0
  784. data/test/fixtures/doses.yml +15 -0
  785. data/test/fixtures/doses_administradas.yml +13 -0
  786. data/test/fixtures/doses_vacinas.yml +13 -0
  787. data/test/fixtures/especialidades.yml +7 -0
  788. data/test/fixtures/estados.yml +9 -0
  789. data/test/fixtures/exames.yml +15 -0
  790. data/test/fixtures/feedbacks.yml +13 -0
  791. data/test/fixtures/formacoes.yml +7 -0
  792. data/test/fixtures/hipoteses.yml +9 -0
  793. data/test/fixtures/impresso.yml +11 -0
  794. data/test/fixtures/marcos.yml +13 -0
  795. data/test/fixtures/marcos_atingidos.yml +11 -0
  796. data/test/fixtures/medicacoes.yml +19 -0
  797. data/test/fixtures/mensagens.yml +11 -0
  798. data/test/fixtures/modelos_impressos.yml +9 -0
  799. data/test/fixtures/modulos.yml +11 -0
  800. data/test/fixtures/pacientes.yml +37 -0
  801. data/test/fixtures/pacientes_hosped.yml +11 -0
  802. data/test/fixtures/padroes_oms_dias.yml +29 -0
  803. data/test/fixtures/padroes_oms_meses.yml +33 -0
  804. data/test/fixtures/patologia.yml +11 -0
  805. data/test/fixtures/percentis.yml +15 -0
  806. data/test/fixtures/perfis.yml +7 -0
  807. data/test/fixtures/permissoes.yml +9 -0
  808. data/test/fixtures/profissionais.yml +29 -0
  809. data/test/fixtures/quadros.yml +21 -0
  810. data/test/fixtures/reavaliacoes.yml +15 -0
  811. data/test/fixtures/recursos.yml +11 -0
  812. data/test/fixtures/respostas.yml +11 -0
  813. data/test/fixtures/teleconsultorias.yml +13 -0
  814. data/test/fixtures/tipo_diabetes.yml +7 -0
  815. data/test/fixtures/tipo_exames.yml +7 -0
  816. data/test/fixtures/tipo_insulinas.yml +7 -0
  817. data/test/fixtures/tipo_partos.yml +7 -0
  818. data/test/fixtures/tipos_profissionais.yml +7 -0
  819. data/test/fixtures/tokens.yml +9 -0
  820. data/test/fixtures/turnos.yml +9 -0
  821. data/test/fixtures/unidades_saude.yml +7 -0
  822. data/test/fixtures/usuarios.yml +11 -0
  823. data/test/fixtures/vacinas.yml +7 -0
  824. data/test/functional/.gitkeep +0 -0
  825. data/test/functional/admin/cid_controller_test.rb +9 -0
  826. data/test/functional/admin/medicos_controller_test.rb +24 -0
  827. data/test/functional/admin/relatorios_controller_test.rb +9 -0
  828. data/test/functional/admin/tipo_exames_controller_test.rb +7 -0
  829. data/test/functional/admin/unidades_saude_controller_test.rb +7 -0
  830. data/test/functional/admin_controller_test.rb +9 -0
  831. data/test/functional/administracao_mailer_test.rb +12 -0
  832. data/test/functional/agendamentos_controller_test.rb +49 -0
  833. data/test/functional/alunos_controller_test.rb +49 -0
  834. data/test/functional/analise_dieteticas_controller_test.rb +7 -0
  835. data/test/functional/api/consultas_controller_test.rb +7 -0
  836. data/test/functional/api/pacientes_controller_test.rb +7 -0
  837. data/test/functional/assistencia_social/pacientes_controller_test.rb +9 -0
  838. data/test/functional/cids_controller_test.rb +7 -0
  839. data/test/functional/client_side_mailer_test.rb +7 -0
  840. data/test/functional/consultas_controller_test.rb +49 -0
  841. data/test/functional/conta_controller_test.rb +7 -0
  842. data/test/functional/doses_controller_test.rb +49 -0
  843. data/test/functional/duvidas_clinicas_mailer_test.rb +7 -0
  844. data/test/functional/especialidades_controller_test.rb +49 -0
  845. data/test/functional/exames_controller_test.rb +49 -0
  846. data/test/functional/feedbacks_controller_test.rb +49 -0
  847. data/test/functional/formacoes_controller_test.rb +49 -0
  848. data/test/functional/impressos_controller_test.rb +14 -0
  849. data/test/functional/medicacoes_controller_test.rb +49 -0
  850. data/test/functional/mensagens_controller_test.rb +49 -0
  851. data/test/functional/modelos_impressos_controller_test.rb +19 -0
  852. data/test/functional/pacientes_controller_test.rb +49 -0
  853. data/test/functional/padroes_oms_controller_test.rb +7 -0
  854. data/test/functional/paginas_controller_test.rb +9 -0
  855. data/test/functional/painel_controller_test.rb +9 -0
  856. data/test/functional/patologias_controller_test.rb +7 -0
  857. data/test/functional/percentis_controller_test.rb +9 -0
  858. data/test/functional/profissionais_controller_test.rb +49 -0
  859. data/test/functional/quadros_controller_test.rb +49 -0
  860. data/test/functional/reavaliacoes_controller_test.rb +49 -0
  861. data/test/functional/respostas_controller_test.rb +49 -0
  862. data/test/functional/sessions_controller_test.rb +9 -0
  863. data/test/functional/supervisao/pesquisas_controller_test.rb +14 -0
  864. data/test/functional/supervisao_controller_test.rb +9 -0
  865. data/test/functional/supervisao_mailer_test.rb +7 -0
  866. data/test/functional/teleconsultorias_controller_test.rb +49 -0
  867. data/test/functional/tipo_diabetes_controller_test.rb +49 -0
  868. data/test/functional/tipos_exames_controller_test.rb +24 -0
  869. data/test/functional/tipos_profissionais_controller_test.rb +49 -0
  870. data/test/functional/unidades_saude_controller_test.rb +49 -0
  871. data/test/integration/.gitkeep +0 -0
  872. data/test/performance/browsing_test.rb +12 -0
  873. data/test/test_helper.rb +13 -0
  874. data/test/unit/.gitkeep +0 -0
  875. data/test/unit/agendamento_test.rb +7 -0
  876. data/test/unit/aluno_test.rb +7 -0
  877. data/test/unit/analise_dietetica_test.rb +7 -0
  878. data/test/unit/cid_test.rb +7 -0
  879. data/test/unit/cidade_test.rb +7 -0
  880. data/test/unit/concentracao_test.rb +7 -0
  881. data/test/unit/consulta_autosave_test.rb +7 -0
  882. data/test/unit/consulta_test.rb +7 -0
  883. data/test/unit/consultas_dds_test.rb +7 -0
  884. data/test/unit/consultas_diabetes_test.rb +7 -0
  885. data/test/unit/consultas_disturbiosadrenais_test.rb +7 -0
  886. data/test/unit/consultas_disturbioscrescimento_test.rb +7 -0
  887. data/test/unit/consultas_disturbiospuberais_test.rb +7 -0
  888. data/test/unit/consultas_disturbiostireoidianos_test.rb +7 -0
  889. data/test/unit/consultas_geral_test.rb +7 -0
  890. data/test/unit/consultas_miscelanea_test.rb +7 -0
  891. data/test/unit/consultas_obesidadedislipidemias_test.rb +7 -0
  892. data/test/unit/diagnostico_test.rb +7 -0
  893. data/test/unit/dica_test.rb +7 -0
  894. data/test/unit/dose_administrada_test.rb +7 -0
  895. data/test/unit/dose_test.rb +7 -0
  896. data/test/unit/dose_vacina_test.rb +7 -0
  897. data/test/unit/especialidade_test.rb +7 -0
  898. data/test/unit/estado_test.rb +7 -0
  899. data/test/unit/exame_test.rb +7 -0
  900. data/test/unit/feedback_test.rb +7 -0
  901. data/test/unit/formacao_test.rb +7 -0
  902. data/test/unit/helpers/admin/cid_helper_test.rb +4 -0
  903. data/test/unit/helpers/admin/medicos_helper_test.rb +4 -0
  904. data/test/unit/helpers/admin/relatorios_helper_test.rb +4 -0
  905. data/test/unit/helpers/admin/tipo_exames_helper_test.rb +4 -0
  906. data/test/unit/helpers/admin/unidades_saude_helper_test.rb +4 -0
  907. data/test/unit/helpers/admin_helper_test.rb +4 -0
  908. data/test/unit/helpers/agendamentos_helper_test.rb +4 -0
  909. data/test/unit/helpers/alunos_helper_test.rb +4 -0
  910. data/test/unit/helpers/analise_dieteticas_helper_test.rb +4 -0
  911. data/test/unit/helpers/api/consultas_helper_test.rb +4 -0
  912. data/test/unit/helpers/api/pacientes_helper_test.rb +4 -0
  913. data/test/unit/helpers/assistencia_social/pacientes_helper_test.rb +4 -0
  914. data/test/unit/helpers/cids_helper_test.rb +4 -0
  915. data/test/unit/helpers/consultas_helper_test.rb +4 -0
  916. data/test/unit/helpers/conta_helper_test.rb +4 -0
  917. data/test/unit/helpers/doses_helper_test.rb +4 -0
  918. data/test/unit/helpers/especialidades_helper_test.rb +4 -0
  919. data/test/unit/helpers/exames_helper_test.rb +4 -0
  920. data/test/unit/helpers/feedbacks_helper_test.rb +4 -0
  921. data/test/unit/helpers/formacoes_helper_test.rb +4 -0
  922. data/test/unit/helpers/impressos_helper_test.rb +4 -0
  923. data/test/unit/helpers/medicacoes_helper_test.rb +4 -0
  924. data/test/unit/helpers/mensagens_helper_test.rb +4 -0
  925. data/test/unit/helpers/modelos_impressos_helper_test.rb +4 -0
  926. data/test/unit/helpers/pacientes_helper_test.rb +4 -0
  927. data/test/unit/helpers/padroes_oms_helper_test.rb +4 -0
  928. data/test/unit/helpers/paginas_helper_test.rb +4 -0
  929. data/test/unit/helpers/painel_helper_test.rb +4 -0
  930. data/test/unit/helpers/patologias_helper_test.rb +4 -0
  931. data/test/unit/helpers/percentis_helper_test.rb +4 -0
  932. data/test/unit/helpers/profissionais_helper_test.rb +4 -0
  933. data/test/unit/helpers/quadros_helper_test.rb +4 -0
  934. data/test/unit/helpers/reavaliacoes_helper_test.rb +4 -0
  935. data/test/unit/helpers/respostas_helper_test.rb +4 -0
  936. data/test/unit/helpers/sessions_helper_test.rb +4 -0
  937. data/test/unit/helpers/supervisao/pesquisas_helper_test.rb +4 -0
  938. data/test/unit/helpers/supervisao_helper_test.rb +4 -0
  939. data/test/unit/helpers/teleconsultorias_helper_test.rb +4 -0
  940. data/test/unit/helpers/tipo_diabetes_helper_test.rb +4 -0
  941. data/test/unit/helpers/tipos_exames_helper_test.rb +4 -0
  942. data/test/unit/helpers/tipos_profissionais_helper_test.rb +4 -0
  943. data/test/unit/helpers/unidades_saude_helper_test.rb +4 -0
  944. data/test/unit/hipotese_test.rb +7 -0
  945. data/test/unit/impresso_test.rb +7 -0
  946. data/test/unit/marco_atingido_test.rb +7 -0
  947. data/test/unit/marco_test.rb +7 -0
  948. data/test/unit/medicacao_test.rb +7 -0
  949. data/test/unit/mensagem_test.rb +7 -0
  950. data/test/unit/modelo_impresso_test.rb +7 -0
  951. data/test/unit/modulo_test.rb +7 -0
  952. data/test/unit/paciente_hosped_test.rb +7 -0
  953. data/test/unit/paciente_test.rb +7 -0
  954. data/test/unit/padrao_oms_dias_test.rb +7 -0
  955. data/test/unit/padrao_oms_meses_test.rb +7 -0
  956. data/test/unit/patologia_test.rb +7 -0
  957. data/test/unit/percentil_test.rb +7 -0
  958. data/test/unit/perfil_test.rb +7 -0
  959. data/test/unit/permissao_test.rb +7 -0
  960. data/test/unit/profissional_test.rb +7 -0
  961. data/test/unit/quadro_test.rb +7 -0
  962. data/test/unit/reavaliacao_test.rb +7 -0
  963. data/test/unit/recurso_test.rb +7 -0
  964. data/test/unit/resposta_test.rb +7 -0
  965. data/test/unit/teleconsultoria_test.rb +7 -0
  966. data/test/unit/tipo_diabete_test.rb +7 -0
  967. data/test/unit/tipo_exame_test.rb +7 -0
  968. data/test/unit/tipo_insulina_test.rb +7 -0
  969. data/test/unit/tipo_parto_test.rb +7 -0
  970. data/test/unit/tipo_profissional_test.rb +7 -0
  971. data/test/unit/token_test.rb +7 -0
  972. data/test/unit/turno_test.rb +7 -0
  973. data/test/unit/unidade_saude_test.rb +7 -0
  974. data/test/unit/usuario_test.rb +7 -0
  975. data/test/unit/vacina_test.rb +7 -0
  976. data/vendor/assets/javascripts/.gitkeep +0 -0
  977. data/vendor/assets/stylesheets/.gitkeep +0 -0
  978. data/vendor/plugins/.gitkeep +0 -0
  979. data/vendor/plugins/omniauth-sabia/Gemfile +4 -0
  980. data/vendor/plugins/omniauth-sabia/README.md +26 -0
  981. data/vendor/plugins/omniauth-sabia/lib/omniauth-sabia.rb +2 -0
  982. data/vendor/plugins/omniauth-sabia/lib/omniauth-sabia/version.rb +5 -0
  983. data/vendor/plugins/omniauth-sabia/lib/omniauth/strategies/sabia.rb +50 -0
  984. data/vendor/plugins/omniauth-sabia/omniauth-sabia.gemspec +20 -0
  985. metadata +1066 -0
@@ -0,0 +1,324 @@
1
+ <% content_for :head do %>
2
+ <script src="/assets/ckeditor/ckeditor.js?body=1" type="text/javascript"></script>
3
+ <script type="text/javascript">
4
+ var fragmentos = new Array();
5
+ <% ModeloImpresso::FRAGMENTOS.each_key do |fragmento| %>
6
+ fragmentos.push("<%= fragmento %>");
7
+ <% end %>
8
+
9
+ function carregar_modelo_impresso() {
10
+ modelo_id = $("#modelo_impresso_id").val();
11
+ if(modelo_id == "" || modelo_id == null || modelo_id == undefined) {
12
+ limpar_impresso();
13
+ return;
14
+ }
15
+ params = { paciente_id: <%= @paciente.id %> };
16
+ jsonData = ajax("GET", "/modelos_impressos/"+modelo_id+".json", "json", params);
17
+ modelo = JSON.parse(jsonData);
18
+ corpo_processado = processar_fragmentos(modelo["corpo"]);
19
+
20
+ $("#titulo_impresso").val(modelo["titulo"]);
21
+ CKEDITOR.instances['corpo_impresso'].setData(corpo_processado);
22
+ }
23
+
24
+ function processar_fragmentos(corpo) {
25
+ for(i = 0; i < fragmentos.length; i++) {
26
+ if(corpo.search(fragmentos[i]) > 0) {
27
+ corpo = processar_fragmento(corpo, fragmentos[i]);
28
+ }
29
+ }
30
+
31
+ matches = corpo.match(/%[a-zA-Z0-9_]*%/g);
32
+ if(matches != null) {
33
+ for(i = 0; i < matches.length; i++) {
34
+ corpo = corpo.replace(matches[i], "<span style='background-color:Red;color:white'>[ERRO: o fragmento "+matches[i]+" não existe]</span>");
35
+ }
36
+ }
37
+
38
+ return corpo;
39
+ }
40
+
41
+ function processar_fragmento(corpo, fragmento) {
42
+ seletor = fragmento.replace(/\%/g, "");
43
+ valor = $("#"+seletor).val();
44
+
45
+ if(valor == "" || valor == undefined || valor == null) {
46
+ return corpo.replace(fragmento, "<span style='background-color:Yellow;'>[ATENÇÃO: não consta valor para o(a) fragmento "+seletor+"</span>");
47
+ }
48
+
49
+ return corpo.replace(fragmento, valor);
50
+ }
51
+
52
+ function processar_impresso() {
53
+ corpo = CKEDITOR.instances['corpo_impresso'].getData();
54
+ corpo = processar_fragmentos(corpo);
55
+ CKEDITOR.instances['corpo_impresso'].setData(corpo);
56
+ }
57
+
58
+ function limpar_impresso() {
59
+ $("#modelo_impresso_id").val("");
60
+ $("#titulo_impresso").val("");
61
+ CKEDITOR.instances['corpo_impresso'].setData("");
62
+ $("#impresso_id").val("");
63
+ $("#btn_cancelar_impresso").attr("disabled", "disabled");
64
+ $(".has-error").removeClass("has-error");
65
+ $(".help-inline").hide();
66
+ }
67
+
68
+ function salvar_impresso() {
69
+ if($("#impresso_id").val() == "" || $("#impresso_id").val() == NaN || $("#impresso_id").val() == undefined) {
70
+ adicionar_impresso();
71
+ } else {
72
+ editar_impresso();
73
+ }
74
+ }
75
+
76
+ function editar_impresso() {
77
+ if(!validar_impresso()) {
78
+ return;
79
+ }
80
+
81
+ params = {
82
+ impresso: {
83
+ id: $("#impresso_id").val(),
84
+ titulo: $("#titulo_impresso").val(),
85
+ corpo: CKEDITOR.instances['corpo_impresso'].getData(),
86
+ paciente_id: <%= @paciente.id %>
87
+ }
88
+ }
89
+ response = ajaxCSRF("PUT", "/pacientes/<%= @paciente.id %>/impressos/"+id+".json", "json", params);
90
+ jsonData = JSON.parse(response);
91
+ $("table#impressos > tbody > tr#impresso_"+id+" > td")[0].innerHTML = jsonData["titulo"];
92
+
93
+ limpar_impresso();
94
+ }
95
+
96
+ function copiar_impresso(id) {
97
+ response = ajaxCSRF("GET", "/pacientes/<%= @paciente.id %>/impressos/"+id+".json", "json", {});
98
+ jsonData = JSON.parse(response);
99
+
100
+ $("#titulo_impresso").val(jsonData["titulo"]);
101
+ CKEDITOR.instances['corpo_impresso'].setData(jsonData["corpo"]);
102
+ $("#btn_cancelar_impresso").removeAttr("disabled");
103
+ }
104
+
105
+ function imprimir_impresso(id) {
106
+ var win = window.open("/pacientes/<%= @paciente.id %>/impressos/"+id+".pdf", '_blank');
107
+ win.focus();
108
+ }
109
+
110
+ function adicionar_impresso() {
111
+ if(!validar_impresso()) {
112
+ return;
113
+ }
114
+
115
+ titulo = $("#titulo_impresso").val();
116
+ corpo = CKEDITOR.instances['corpo_impresso'].getData();
117
+ params = {
118
+ impresso: {
119
+ titulo: $("#titulo_impresso").val(),
120
+ corpo: CKEDITOR.instances['corpo_impresso'].getData(),
121
+ paciente_id: <%= @paciente.id %>
122
+ }
123
+ }
124
+
125
+ response = ajaxCSRF("POST", "<%= paciente_impressos_path(:paciente_id => @paciente.id, :format => "json") %>", "json", params);
126
+ jsonData = JSON.parse(response);
127
+ id = jsonData["id"];
128
+
129
+ limpar_impresso();
130
+
131
+ linha = "<tr id='impresso_"+id+"'>";
132
+ linha += "<td>"+titulo+"</td>";
133
+ linha += "<td><div class='btn-group'>";
134
+ linha += "<a href='javascript:void(0)' class='btn btn-sm btn-default' onclick='copiar_impresso("+id+")'><i class='fa fa-files-o'></i> Copiar</a>";
135
+ linha += "<a href='javascript:void(0)' class='btn btn-sm btn-default' onclick='imprimir_impresso("+id+")'><i class='fa fa-print'></i> Imprimir</a>";
136
+ linha += "<a href='javascript:void(0)' class='btn btn-sm btn-default' onclick='carregar_impresso("+id+")'><i class='glyphicon glyphicon-edit'></i> Editar</a>";
137
+ linha += "<a href='javascript:void(0)' class='btn btn-sm btn-default' onclick='remover_impresso("+id+")'><i class='glyphicon glyphicon-remove'></i> Remover</a>";
138
+ linha += "</div></td>";
139
+ linha += "</tr>";
140
+
141
+ $("#impressos > tbody").append(linha);
142
+ limpar_impresso();
143
+ }
144
+
145
+ function carregar_impresso(id) {
146
+ response = ajaxCSRF("GET", "/pacientes/<%= @paciente.id %>/impressos/"+id+".json", "json", {});
147
+ jsonData = JSON.parse(response);
148
+
149
+ $("#titulo_impresso").val(jsonData["titulo"]);
150
+ CKEDITOR.instances['corpo_impresso'].setData(jsonData["corpo"]);
151
+ $("#btn_cancelar_impresso").removeAttr("disabled");
152
+ $("#impresso_id").val(jsonData["id"]);
153
+ }
154
+
155
+ function cancelar_impresso() {
156
+ $("#btn_cancelar_impresso").attr("disabled", "disabled");
157
+ limpar_impresso();
158
+ }
159
+
160
+ function remover_impresso(id) {
161
+ if(confirm("Tem certeza que deseja remover esse impresso?")) {
162
+ $("tr#impresso_"+id).remove();
163
+ ajaxCSRF("DELETE", "/pacientes/<%= @paciente.id %>/impressos/"+id, "json", {});
164
+ }
165
+ }
166
+
167
+ function validar_impresso() {
168
+ validation = true;
169
+ $(".has-error").removeClass("has-error");
170
+ $(".help-inline").hide();
171
+
172
+ if($("#titulo_impresso").val() == "") {
173
+ validation = false;
174
+ $("#titulo_impresso").parents("div.form-group").addClass("has-error");
175
+ $("#titulo_impresso_required").show();
176
+ }
177
+
178
+ if(CKEDITOR.instances['corpo_impresso'].getData() == "") {
179
+ validation = false;
180
+ $("#corpo_impresso").parents("div.form-group").addClass("has-error");
181
+ $("#corpo_impresso_required").show();
182
+ }
183
+
184
+ return validation;
185
+ }
186
+
187
+ function abrir_ajuda_impresso() {
188
+ $('#ajuda_impressos').modal('show');
189
+ }
190
+ </script>
191
+ <% end %>
192
+
193
+ <div class="panel panel-success form-horizontal">
194
+ <div class="panel-heading"><h3 class="panel-title">Novo Impresso</h3></div>
195
+ <div class="panel-body">
196
+ <%= hidden_field_tag :impresso_id %>
197
+ <div class="row">
198
+ <div class="col-md-4">
199
+ <div class="form-group with-no-margin">
200
+ <%= label_tag :modelo_impresso_id, 'Modelo', :class => 'control-label' %>
201
+ <div class="controls">
202
+ <%= select_tag :modelo_impresso_id, options_for_select(ModeloImpresso.select), { :prompt => 'Nenhum', :class => 'form-control', :onchange => 'carregar_modelo_impresso()' } %>
203
+ </div>
204
+ </div>
205
+ </div>
206
+ <div class="col-md-8">
207
+ <div class="form-group with-no-margin">
208
+ <%= label_tag :titulo_impresso, 'Título *', :class => 'control-label' %>
209
+ <div class="controls">
210
+ <%= text_field_tag :titulo_impresso, "", :class => 'form-control' %>
211
+ <span id="titulo_impresso_required" class="help-inline">Campo obrigatório!</span>
212
+ </div>
213
+ </div>
214
+ </div>
215
+ </div>
216
+
217
+ <div class="row">
218
+ <div class="col-md-12">
219
+ <div class="form-group with-no-margin">
220
+ <%= label_tag :corpo_impresso, 'Corpo *', :class => 'control-label' %>
221
+ <div class="controls">
222
+ <%= cktext_area_tag :corpo_impresso %>
223
+ <span id="corpo_impresso_required" class="help-inline">Campo obrigatório!</span>
224
+ </div>
225
+ </div>
226
+ </div>
227
+ </div>
228
+
229
+ <div class="row with-top-margin">
230
+ <div class="col-md-12 btn-group">
231
+ <a id="btn_adicionar_impresso" href="javascript:void(0)" class="btn btn-default" onclick = "salvar_impresso(); return false;"><i class="fa fa-floppy-o"></i> Salvar</a>
232
+ <a id="btn_processar_impresso" href="javascript:void(0)" class="btn btn-default" onclick = "processar_impresso(); return false;"><i class="fa fa-refresh"></i> Processar</a>
233
+ <a id="btn_cancelar_impresso" disabled href="javascript:void(0)" class="btn btn-default" onclick = "cancelar_impresso(); return false;">Cancelar</a>
234
+ <a id="btn_ajuda_impresso" href="javascript:void(0)" class="btn btn-default pull-right" onclick = "abrir_ajuda_impresso(); return false;"><i class="glyphicon glyphicon-question-sign"></i> Ajuda</a>
235
+ </div>
236
+ </div>
237
+ </div>
238
+ </div>
239
+
240
+ <div class="panel panel-success form-horizontal">
241
+ <div class="panel-heading"><h3 class="panel-title">Impressos</h3></div>
242
+ <div class="panel-body">
243
+ <div class="row">
244
+ <div class="col-md-12">
245
+ <table class="table table-bordered" id="impressos">
246
+ <thead>
247
+ <tr>
248
+ <th>Título</th>
249
+ <th>Opções</th>
250
+ </tr>
251
+ </thead>
252
+ <tbody>
253
+ </tbody>
254
+ </table>
255
+ </div>
256
+ </div>
257
+ </div>
258
+ </div>
259
+
260
+ <div class="panel panel-success form-horizontal">
261
+ <div class="panel-heading"><h3 class="panel-title">Impressos Anteriores</h3></div>
262
+ <div class="panel-body">
263
+ <% if @paciente.impressos.length > 0 %>
264
+ <table class="table table-bordered" id="impressos_anteriores">
265
+ <thead>
266
+ <tr>
267
+ <th>Título</th>
268
+ <th>Emissor</th>
269
+ <th>Data</th>
270
+ <th>Opções</th>
271
+ </tr>
272
+ </thead>
273
+ <tbody>
274
+ <% @paciente.impressos.each do |impresso| %>
275
+ <tr>
276
+ <td><%= impresso.titulo %></td>
277
+ <td>
278
+ <% if impresso.profissional.present? %>
279
+ <%= impresso.profissional.nome %>
280
+ <% else %>
281
+ Não consta
282
+ <% end %>
283
+ </td>
284
+ <td><%= impresso.created_at.strftime("%d/%m/%Y") %></td>
285
+ <td>
286
+ <div class="btn-group">
287
+ <a href="javascript:void(0)" class="btn btn-sm btn-default" onclick="copiar_impresso(<%= impresso.id %>)"><i class='fa fa-files-o'></i> Copiar</a>
288
+ <a href="javascript:void(0)" class="btn btn-sm btn-default" onclick="imprimir_impresso(<%= impresso.id %>)"><i class='fa fa-print'></i> Imprimir</a>
289
+ </div>
290
+ </td>
291
+ </tr>
292
+ <% end %>
293
+ </tbody>
294
+ </table>
295
+ <% else %>
296
+ <p>Nenhum impresso encontrado em consultas anteriores.</p>
297
+ <% end %>
298
+ </div>
299
+ </div>
300
+
301
+ <div class="modal fade" tabindex="-1" role="dialog" id="ajuda_impressos">
302
+ <div class="modal-dialog">
303
+ <div class="modal-content">
304
+ <div class="modal-header">
305
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
306
+ <h4 class="modal-title"><i class="glyphicon glyphicon-question-sign"></i> Ajuda</h4>
307
+ </div>
308
+ <div class="modal-body">
309
+ <p class="text-justify">Nesta página é possível cadastrar impressos (receitas, atestados, etc.) para o paciente. Para cadastrar um novo impresso, preencha o campo 'Título' com o título do impresso (algo que o identifique) e o campo 'Corpo' com o texto do impresso. Ao concluir o preenchimento dos campos 'Título' e 'Corpo', clique no botão 'Salvar'.</p>
310
+ <p class="text-justify">Existem alguns modelos pré-definidos de impressos que podem ser utilizados. Os modelos facilitam a criação de novos impressos pois já contém algumas informações e, opcionalmente, podem usar fragmentos. Fragmentos são 'variáveis' que podem ser usadas no modelo e no impresso para carregar dados da consulta ou do paciente. Um exemplo de fragmento é o %paciente_nome%. Todos os fragmentos são delimitados pelo sinal de percentual (%). Quando um fragmento, por exemplo, %paciente_nome, está presente num modelo, ele será automaticamente substituído pelo seu valor correspondente. O fragmento %paciente_nome% será substituído pelo nome do paciente.</p>
311
+ <p class="text-justify">Os fragmentos também podem ser usados nos impressos. O uso dos fragmentos pode facilitar o preenchimento de um novo impresso, pois ele permitirá carregar automaticamente a informação desejada. Por exemplo: sem o uso de fragmentos, caso você deseje registrar a estatura do paciente no impresso, você precisará abrir a aba 'Avaliação Inicial', ver ou copiar a estatura do paciente, voltar para a aba 'Impressos' e digitar ou colar o valor da estatura. Usando o fragmento %consulta_estatura%, bastará clicar no botão 'Processar' para carregar automaticamente o valor da estatura no local onde você digitou o fragmento.</p>
312
+ <p>Confira abaixo a lista de fragmentos disponíveis.</p>
313
+ <ul class="list-group">
314
+ <% ModeloImpresso::FRAGMENTOS.each_pair { |fragmento, dado| %>
315
+ <li class="list-group-item"><strong><%= fragmento %></strong> será substituído pelo(a) <%= dado %></li>
316
+ <% } %>
317
+ </ul>
318
+ </div>
319
+ <div class="modal-footer">
320
+ <button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button>
321
+ </div>
322
+ </div><!-- /.modal-content -->
323
+ </div><!-- /.modal-dialog -->
324
+ </div><!-- /.modal -->
@@ -0,0 +1,18 @@
1
+ <div>
2
+ <ul class="nav nav-tabs" role="tablist">
3
+ <li role="campo_medicacoes" class="active"><a href="#campo_medicacoes" aria-controls="campo_medicacoes" role="tab" data-toggle="tab">Medicações</a></li>
4
+ <li role="insulinoterapia"><a href="#insulinoterapia" aria-controls="insulinoterapia" role="tab" data-toggle="tab">Insulinoterapia</a></li>
5
+ <li role="suplementacoes"><a href="#suplementacoes" aria-controls="suplementacoes" role="tab" data-toggle="tab">Suplementações</a></li>
6
+ </ul>
7
+ <div class="tab-content">
8
+ <div role="tabpanel" class="tab-pane active" id="campo_medicacoes">
9
+ <%= render :partial => 'consultas/new/medicacoes_doses', :locals => { :f => f } %>
10
+ </div>
11
+ <div role="tabpanel" class="tab-pane" id="insulinoterapia">
12
+ <%= render :partial => 'consultas/new/medicacoes_diabetes', :locals => { :f => f } %>
13
+ </div>
14
+ <div role="tabpanel" class="tab-pane" id="suplementacoes">
15
+ <%= render :partial => 'consultas/new/medicacoes_suplementacoes', :locals => { :f => f } %>
16
+ </div>
17
+ </div>
18
+ </div>
@@ -0,0 +1,417 @@
1
+
2
+ <% content_for :head do %>
3
+ <script type="text/javascript">
4
+ var tipos_doses = new Array();
5
+ <% TipoInsulina.all.each do |tipo| %>
6
+ tipos_doses[<%= tipo.id %>] = "<%= tipo.nome %>";
7
+ <% end %>
8
+
9
+ var concentracoes = new Array();
10
+ <% Concentracao.all.each do |concentracao| %>
11
+ concentracoes[<%= concentracao.id %>] = { nome: "<%= concentracao.nome %>", capacidade: <%= concentracao.capacidade %> };
12
+ <% end %>
13
+
14
+ var index = 0;
15
+ var id_linha_selecionada_doses = null;
16
+ var dose_diaria_total = 0;
17
+
18
+ function validar_dose() {
19
+ validation = true;
20
+ limpar_avisos_validacao();
21
+
22
+ if($("#tipo_insulina_id").val() == "") {
23
+ validation = false;
24
+ $("#tipo_insulina_id").parents("div.form-group").addClass("has-error");
25
+ $("#tipo_insulina_required").show();
26
+ }
27
+
28
+ if($("#cafe_manha").val() == "" && $("#lanche_manha").val() == "" && $("#almoco").val() == "" && $("#lanche_tarde").val() == "" && $("#jantar").val() == "" && $("#deitar").val() == "") {
29
+ validation = false;
30
+ $("#cafe_manha").addClass("input-error");
31
+ $("#lanche_manha").addClass("input-error");
32
+ $("#almoco").addClass("input-error");
33
+ $("#lanche_tarde").addClass("input-error");
34
+ $("#jantar").addClass("input-error");
35
+ $("#deitar").addClass("input-error");
36
+ }
37
+
38
+ if($("#consulta_peso").val() == "") {
39
+ validation = false;
40
+ $("#tabs a[href='#avaliacao-inicial']").tab('show');
41
+ $("#peso_required").parents("div.form-group").addClass("has-error");
42
+ $("#peso_required").show();
43
+ alert("Preencha o peso do paciente.");
44
+ }
45
+
46
+ if($("#concentracao").val() == "") {
47
+ validation = false;
48
+ $("#concentracao").addClass("input-error");
49
+ }
50
+
51
+ return validation;
52
+ }
53
+
54
+ function get(campo) {
55
+ console.log(campo + ': ' + $("#"+campo).val());
56
+ if($("#"+campo).val() == "") {
57
+ return 0.0;
58
+ }
59
+ valor = toFloat($("#"+campo).val());
60
+ if(isNaN(valor)) {
61
+ return 0.0;
62
+ }
63
+ return valor;
64
+ }
65
+
66
+ function calcular_percentuais() {
67
+ $("td.subtotal").each(function(i) {
68
+ percentual = Math.round((toFloat($(this).text()) / dose_diaria_total) * 100);
69
+ percentual_id = $(this).attr('id').replace("subtotal", "percentual");
70
+ $("#"+percentual_id).html(percentual+"%");
71
+ });
72
+ }
73
+
74
+ function calcular_subtotal() {
75
+ cafe = get('cafe_manha');
76
+ lanche_manha = get('lanche_manha');
77
+ almoco = get('almoco');
78
+ lanche_tarde = get('lanche_tarde');
79
+ jantar = get('jantar');
80
+ deitar = get('deitar');
81
+ subtotal = 0.0;
82
+ if(!isNaN(cafe)) {
83
+ subtotal = subtotal + cafe;
84
+ }
85
+ if(!isNaN(lanche_manha)) {
86
+ subtotal = subtotal + lanche_manha;
87
+ }
88
+ if(!isNaN(almoco)) {
89
+ subtotal = subtotal + almoco;
90
+ }
91
+ if(!isNaN(lanche_tarde)) {
92
+ subtotal = subtotal + lanche_tarde;
93
+ }
94
+ if(!isNaN(jantar)) {
95
+ subtotal = subtotal + jantar;
96
+ }
97
+ if(!isNaN(deitar)) {
98
+ subtotal = subtotal + deitar;
99
+ }
100
+
101
+ $("#subtotal").val(toReal(subtotal, 2));
102
+ }
103
+
104
+ function limpar_form_adicionar_dose() {
105
+ $("#cafe_manha").val("");
106
+ $("#lanche_manha").val("");
107
+ $("#almoco").val("");
108
+ $("#lanche_tarde").val("");
109
+ $("#jantar").val("");
110
+ $("#deitar").val("");
111
+ $("#subtotal").val("");
112
+ $("#tipo_insulina_id").val("");
113
+ $("#concentracao").val("");
114
+
115
+ limpar_avisos_validacao();
116
+ }
117
+
118
+ function limpar_avisos_validacao() {
119
+ $("#field_tipo_insulina").removeClass("has-error");
120
+ $("#tipo_insulina_required").hide();
121
+ $("#cafe_manha").removeClass("input-error");
122
+ $("#lanche_manha").removeClass("input-error");
123
+ $("#almoco").removeClass("input-error");
124
+ $("#lanche_tarde").removeClass("input-error");
125
+ $("#jantar").removeClass("input-error");
126
+ $("#deitar").removeClass("input-error");
127
+ $("#subtotal").removeClass("input-error");
128
+ $("#concentracao").removeClass("input-error");
129
+ $("#peso_required").parents("div.form-group").removeClass("error");
130
+ }
131
+
132
+ function selecionar_dose(linha) {
133
+ if(id_linha_selecionada_doses == linha.id) {
134
+ $("#"+linha.id).removeClass("selected");
135
+ id_linha_selecionada_doses = null;
136
+ } else {
137
+ $("#"+id_linha_selecionada_doses).removeClass("selected");
138
+ id_linha_selecionada_doses = linha.id;
139
+ $("#"+id_linha_selecionada_doses).addClass("selected");
140
+ }
141
+ }
142
+
143
+ function remover_dose() {
144
+ if(id_linha_selecionada_doses == null) {
145
+ alert("Selecione uma linha na tabela.");
146
+ return;
147
+ }
148
+ if(!confirm("Tem certeza que deseja remover essa dose?")) {
149
+ return;
150
+ }
151
+ subtotal = toFloat($("#subtotal_"+id_linha_selecionada_doses).html());
152
+ dose_diaria_total = dose_diaria_total - subtotal;
153
+ $("#dose_diaria_total").html(toReal(dose_diaria_total));
154
+ $("#"+id_linha_selecionada_doses).remove();
155
+ calcular_percentuais();
156
+ calcular_total_kg();
157
+ calcular_fs();
158
+
159
+ $("#dose_tipo_"+id_linha_selecionada_doses).remove();
160
+ $("#dose_cafe_manha_"+id_linha_selecionada_doses).remove();
161
+ $("#dose_lanche_manha_"+id_linha_selecionada_doses).remove();
162
+ $("#dose_almoco_"+id_linha_selecionada_doses).remove();
163
+ $("#dose_lanche_tarde_"+id_linha_selecionada_doses).remove();
164
+ $("#dose_jantar_"+id_linha_selecionada_doses).remove();
165
+ $("#dose_deitar_"+id_linha_selecionada_doses).remove();
166
+ $("#uso_mensal_"+id_linha_selecionada_doses).remove();
167
+ $("#concentracao_id_"+id_linha_selecionada_doses).remove();
168
+ id_linha_selecionada_doses = null;
169
+ }
170
+
171
+ function calcular_total_kg() {
172
+ total_kg = dose_diaria_total / get("consulta_peso");
173
+ $("#total_kg").html(toReal(total_kg, 2));
174
+ }
175
+
176
+ function calcular_fs() {
177
+ if(dose_diaria_total != 0) {
178
+ fs = 1800 / dose_diaria_total;
179
+ } else {
180
+ fs = 0;
181
+ }
182
+ $("#fs_padrao").html(toReal(fs, 2));
183
+ fs = fs / 18;
184
+ $("#fs_si").html(toReal(fs, 2));
185
+ }
186
+
187
+ function calcular_uso_mensal(subtotal, concentracao_id) {
188
+ capacidade = concentracoes[concentracao_id]["capacidade"];
189
+ uso_mensal = (subtotal * 30) / capacidade;
190
+ return Math.ceil(uso_mensal);
191
+ }
192
+
193
+ function adicionar_dose() {
194
+ if(!validar_dose()) {
195
+ return;
196
+ }
197
+
198
+ nome_tipo = tipos_doses[parseInt($("#tipo_insulina_id").val())];
199
+ id_tipo = parseInt($("#tipo_insulina_id").val());
200
+
201
+ cafe_manha = get('cafe_manha');
202
+ lanche_manha = get('lanche_manha');
203
+ almoco = get('almoco');
204
+ lanche_tarde = get('lanche_tarde');
205
+ jantar = get('jantar');
206
+ deitar = get('deitar');
207
+ subtotal = get('subtotal');
208
+ concentracao_id = $("#concentracao").val();
209
+ uso_mensal = calcular_uso_mensal(subtotal, concentracao_id);
210
+ dose_diaria_total = dose_diaria_total + subtotal;
211
+ $("#dose_diaria_total").html(toReal(dose_diaria_total, 2));
212
+
213
+ calcular_total_kg();
214
+ calcular_fs();
215
+
216
+ linha = "<tr id='"+index+"' onclick='selecionar_dose(this)'>";
217
+ linha += "<td>"+nome_tipo+"</td>";
218
+ linha += "<td>"+toReal(cafe_manha, 2)+"</td>";
219
+ linha += "<td>"+toReal(lanche_manha, 2)+"</td>";
220
+ linha += "<td>"+toReal(almoco, 2)+"</td>";
221
+ linha += "<td>"+toReal(lanche_tarde, 2)+"</td>";
222
+ linha += "<td>"+toReal(jantar, 2)+"</td>";
223
+ linha += "<td>"+toReal(deitar, 2)+"</td>";
224
+ linha += "<td>"+uso_mensal+" ("+concentracoes[concentracao_id]["nome"]+")"+"</td>";
225
+ linha += "<td class='subtotal' id='subtotal_"+index+"'>"+toReal(subtotal, 2)+"</td>";
226
+ linha += "<td><span class='percentual' id='percentual_"+index+"'></span></td>";
227
+ linha += "</tr>";
228
+
229
+ campos = "<input type='hidden' name='consulta[medicacao_attributes][doses_attributes]["+index+"][tipo_insulina_id]' id='dose_tipo_"+index+"' value='"+id_tipo+"' />";
230
+ campos += "<input type='hidden' name='consulta[medicacao_attributes][doses_attributes]["+index+"][cafe_manha]' id='dose_cafe_manha_"+index+"' value='"+cafe_manha+"' />";
231
+ campos += "<input type='hidden' name='consulta[medicacao_attributes][doses_attributes]["+index+"][lanche_manha]' id='dose_lanche_manha_"+index+"' value='"+lanche_manha+"' />";
232
+ campos += "<input type='hidden' name='consulta[medicacao_attributes][doses_attributes]["+index+"][almoco]' id='dose_almoco_"+index+"' value='"+almoco+"' />";
233
+ campos += "<input type='hidden' name='consulta[medicacao_attributes][doses_attributes]["+index+"][lanche_tarde]' id='dose_lanche_tarde_"+index+"' value='"+lanche_tarde+"' />";
234
+ campos += "<input type='hidden' name='consulta[medicacao_attributes][doses_attributes]["+index+"][jantar]' id='dose_jantar_"+index+"' value='"+jantar+"' />";
235
+ campos += "<input type='hidden' name='consulta[medicacao_attributes][doses_attributes]["+index+"][deitar]' id='dose_deitar_"+index+"' value='"+deitar+"' />";
236
+ campos +="<input type='hidden' name='consulta[medicacao_attributes][doses_attributes]["+index+"][uso_mensal]' id='uso_mensal_"+index+"' value='"+uso_mensal+"' />";
237
+ campos +="<input type='hidden' name='consulta[medicacao_attributes][doses_attributes]["+index+"][concentracao_id]' id='concentracao_id_"+index+"' value='"+concentracao_id+"' />";
238
+ $("#doses > tbody").append(linha);
239
+ $("#doses").append(campos);
240
+ calcular_percentuais();
241
+ index++;
242
+ limpar_form_adicionar_dose();
243
+ }
244
+ </script>
245
+ <% end %>
246
+
247
+ <%= f.fields_for :medicacao do |m| %>
248
+
249
+ <div class="row">
250
+ <div class="col-md-12 form-horizontal">
251
+ </div>
252
+ </div>
253
+
254
+ <div class="panel panel-success">
255
+ <div class="panel-heading"><h4 class="panel-title">Esquema</h4></div>
256
+ <div class="panel-body">
257
+ <div class="row">
258
+ <div class="col-md-12">
259
+ <div class="form-group" id="field_tipo_insulina">
260
+ <%= label_tag :tipo_insulina_id, 'Tipo de Insulina *', :class => 'control-label' %>
261
+ <div class="controls">
262
+ <%= select_tag :tipo_insulina_id, options_from_collection_for_select(TipoInsulina.all, "id", "nome"), { :prompt => 'Selecione', :class => 'form-control' } %>
263
+ <span id="tipo_insulina_required" class="help-inline">Selecione um tipo de insulina!</span>
264
+ <span id="dose_required" class="help-inline">É preciso inserir pelo menos uma dose.</span>
265
+ </div>
266
+ </div>
267
+
268
+ <fieldset>
269
+ <legend>Insulinoterapia (doses)</legend>
270
+ <table class="table table-bordered">
271
+ <thead>
272
+ <tr>
273
+ <th>Café<br/>da manhã</th>
274
+ <th>Lanche<br/>da manhã</th>
275
+ <th>Almoço</th>
276
+ <th>Lanche<br/>da tarde</th>
277
+ <th>Jantar</th>
278
+ <th>Ao deitar</th>
279
+ <th>Concentração</th>
280
+ <th>Total</th>
281
+ <th colspan="2">Opções</th>
282
+ </tr>
283
+ <tr>
284
+ <th><%= text_field_tag :cafe_manha, nil, :onchange => "calcular_subtotal()", :onkeypress => "return onkeypress_validar_real(event, this.value)", :class => 'input-xs form-control' %></th>
285
+ <th><%= text_field_tag :lanche_manha, nil, :onchange => "calcular_subtotal()", :onkeypress => "return onkeypress_validar_real(event, this.value)", :class => 'input-xs form-control' %></th>
286
+ <th><%= text_field_tag :almoco, nil, :onchange => "calcular_subtotal()", :onkeypress => "return onkeypress_validar_real(event, this.value)", :class => 'input-xs form-control' %></th>
287
+ <th><%= text_field_tag :lanche_tarde, nil, :onchange => "calcular_subtotal()", :onkeypress => "return onkeypress_validar_real(event, this.value)", :class => 'input-xs form-control' %></th>
288
+ <th><%= text_field_tag :jantar, nil, :onchange => "calcular_subtotal()", :onkeypress => "return onkeypress_validar_real(event, this.value)", :class => 'input-xs form-control' %></th>
289
+ <th><%= text_field_tag :deitar, nil, :onchange => "calcular_subtotal()", :onkeypress => "return onkeypress_validar_real(event, this.value)", :class => 'input-xs form-control' %></th>
290
+ <th><%= select_tag :concentracao, options_from_collection_for_select(Concentracao.all, :id, :nome), { :prompt => "Selecione", :class => 'input-small form-control' } %></th>
291
+ <th><%= text_field_tag :subtotal, nil, :size => 5, :disabled => 'disabled', :class => 'input-xs form-control' %></th>
292
+ <th colspan="2">
293
+ <div class="btn-group">
294
+ <a href="#" onclick="adicionar_dose()" class="btn btn-default"><i class="glyphicon glyphicon-plus"></i></a>
295
+ <a href="#" onclick="remover_dose()" class="btn btn-default"><i class="glyphicon glyphicon-remove"></i></a>
296
+ </div>
297
+ </th>
298
+ </tr>
299
+ </thead>
300
+ <tbody>
301
+ </tbody>
302
+ </table>
303
+ </fieldset>
304
+
305
+ <table class="table table-bordered" id="doses">
306
+ <thead>
307
+ <tr>
308
+ <th>Tipo de<br/>Insulina</th>
309
+ <th>Café<br/>da manhã</th>
310
+ <th>Lanche<br/>da manhã</th>
311
+ <th>Almoço</th>
312
+ <th>Lanche<br/>da tarde</th>
313
+ <th>Jantar</th>
314
+ <th>Ao deitar</th>
315
+ <th>Uso<br/>mensal</th>
316
+ <th>Total</th>
317
+ <th>%</th>
318
+ </tr>
319
+ </thead>
320
+ <tbody>
321
+ </tbody>
322
+ </table>
323
+ </div>
324
+ </div>
325
+ </div>
326
+ <div class="panel-heading"><h3 class="panel-title">Valores Totais</h3></div>
327
+ <table class="table table-condensed">
328
+ <thead>
329
+ <tr>
330
+ <th>Unidades</th>
331
+ <th>U/Kg/dia</th>
332
+ <th>Fator de Sensibilidade</th>
333
+ </tr>
334
+ </thead>
335
+ <tbody>
336
+ <tr>
337
+ <td>
338
+ <span id="dose_diaria_total">0</span> und.
339
+ </td>
340
+ <td>
341
+ <span id="total_kg">
342
+ <span id="total_kg">0</span>
343
+ </span>
344
+ </td>
345
+ <td>
346
+ <span id="fs_padrao">0</span> mg/dL (<span id="fs_si">0</span> mmol/L)
347
+ </td>
348
+ </tr>
349
+ </tbody>
350
+ </table>
351
+ </div>
352
+
353
+ <div class="row">
354
+ <div class="col-md-6">
355
+ <div class="panel panel-success">
356
+ <div class="panel-heading">
357
+ <h4 class="panel-title">Informações</h4>
358
+ </div>
359
+ <div class="panel-body">
360
+ <div class="form-group">
361
+ <%= m.label :local_recebe, 'Local onde recebe', :class => 'control-label' %>
362
+ <div class="controls">
363
+ <%= m.text_field :local_recebe, :class => 'form-control' %>
364
+ <span id="local_recebe_required" class="help-inline">Campo obrigatório!</span>
365
+ </div>
366
+ </div>
367
+ <div class="form-group">
368
+ <%= m.label :auto_aplica, 'O paciente auto-aplica a medicação?', :class => 'control-label' %>
369
+ <div class="controls">
370
+ <%= m.check_box :auto_aplica, :class => 'form-control' %>
371
+ </div>
372
+ </div>
373
+ <div class="form-group">
374
+ <%= m.label :onde_aplica, 'Onde aplica?', :class => 'control-label' %>
375
+ <div class="controls">
376
+ <%= m.text_field :onde_aplica, :class => 'form-control' %>
377
+ </div>
378
+ </div>
379
+ <div class="form-group">
380
+ <%= m.label :outras_medicacoes, 'Outras medicações', :class => 'control-label' %>
381
+ <div class="controls">
382
+ <%= m.text_area :outras_medicacoes, :rows => 5, :class => 'form-control' %>
383
+ </div>
384
+ </div>
385
+ </div>
386
+ </div>
387
+ </div>
388
+ <div class="col-md-6">
389
+ <div class="panel panel-success">
390
+ <div class="panel-heading">
391
+ <h4 class="panel-title">Contagem de Carboidrato <small>(CCH)</small></h4>
392
+ </div>
393
+ <div class="panel-body">
394
+ <div class="form-group">
395
+ <%= m.label :cch, 'O paciente está fazendo a contagem?', :class => 'control-label' %>
396
+ <div class="controls">
397
+ <%= m.check_box :cch, :onclick => "toggle_checkbox(this, 'consulta_medicacao_attributes_cch_caracteristicas')", :class => 'form-control' %>
398
+ </div>
399
+ </div>
400
+ <div class="form-group">
401
+ <%= m.label :cch_caracteristicas, 'Informe algumas características dessa contagem', :class => 'control-label' %>
402
+ <div class="controls">
403
+ <%= m.text_area :cch_caracteristicas, :rows => 5, :class => "form-control", :disabled => 'disabled' %>
404
+ </div>
405
+ </div>
406
+ </div>
407
+ </div>
408
+ <div class="form-group">
409
+ <%= f.label :controles_glicemicos, 'Controles Glicêmicos', :class => 'control-label' %>
410
+ <div class="controls">
411
+ <%= f.text_area :controles_glicemicos, :rows => 5, :class => 'input-xlarge form-control' %>
412
+ </div>
413
+ </div>
414
+ </div>
415
+ </div>
416
+
417
+ <% end %>