tiss-ruby 0.1.0

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 (297) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +1 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/.travis.yml +5 -0
  8. data/CODE_OF_CONDUCT.md +74 -0
  9. data/Gemfile +8 -0
  10. data/Gemfile.lock +111 -0
  11. data/LICENSE.txt +21 -0
  12. data/README.md +43 -0
  13. data/Rakefile +8 -0
  14. data/bin/console +15 -0
  15. data/bin/setup +8 -0
  16. data/lib/tiss/constants.rb +73 -0
  17. data/lib/tiss/creator.rb +52 -0
  18. data/lib/tiss/generator/generator.rb +20 -0
  19. data/lib/tiss/generator/generators/base_generator.rb +54 -0
  20. data/lib/tiss/generator/generators/model_generator.rb +36 -0
  21. data/lib/tiss/generator/generators/templates/model_template.erb +22 -0
  22. data/lib/tiss/generator/generators/templates/validator_template.erb +60 -0
  23. data/lib/tiss/generator/generators/validator_generator.rb +44 -0
  24. data/lib/tiss/model.rb +66 -0
  25. data/lib/tiss/models/anexo_clinico.rb +18 -0
  26. data/lib/tiss/models/anexo_clinico_prorrogacao.rb +18 -0
  27. data/lib/tiss/models/anexos_clinicos.rb +22 -0
  28. data/lib/tiss/models/anexos_guias_tiss.rb +22 -0
  29. data/lib/tiss/models/beneficiario.rb +18 -0
  30. data/lib/tiss/models/cabecalho_demonstrativo_odonto.rb +26 -0
  31. data/lib/tiss/models/cabecalho_guia.rb +11 -0
  32. data/lib/tiss/models/cabecalho_transacao.rb +36 -0
  33. data/lib/tiss/models/cod_profissional.rb +14 -0
  34. data/lib/tiss/models/codigo_contratado.rb +14 -0
  35. data/lib/tiss/models/contratado_executante.rb +11 -0
  36. data/lib/tiss/models/cpf_cnpj_contratado.rb +14 -0
  37. data/lib/tiss/models/ct_anexo_cabecalho.rb +34 -0
  38. data/lib/tiss/models/ct_anexo_lote.rb +14 -0
  39. data/lib/tiss/models/ct_anexo_recebimento.rb +38 -0
  40. data/lib/tiss/models/ct_autorizacao_dados.rb +36 -0
  41. data/lib/tiss/models/ct_autorizacao_internacao.rb +32 -0
  42. data/lib/tiss/models/ct_autorizacao_sadt.rb +32 -0
  43. data/lib/tiss/models/ct_autorizacao_solicita_status.rb +18 -0
  44. data/lib/tiss/models/ct_beneficiario_dados.rb +36 -0
  45. data/lib/tiss/models/ct_conta_medica_resumo.rb +52 -0
  46. data/lib/tiss/models/ct_contratado_dados.rb +22 -0
  47. data/lib/tiss/models/ct_contratado_profissional_dados.rb +26 -0
  48. data/lib/tiss/models/ct_credito_odonto.rb +14 -0
  49. data/lib/tiss/models/ct_dados_complementares_beneficiario.rb +26 -0
  50. data/lib/tiss/models/ct_dados_complementares_beneficiario_radio.rb +14 -0
  51. data/lib/tiss/models/ct_dados_resumo_demonstrativo.rb +34 -0
  52. data/lib/tiss/models/ct_demonstrativo_cabecalho.rb +26 -0
  53. data/lib/tiss/models/ct_demonstrativo_retorno.rb +26 -0
  54. data/lib/tiss/models/ct_demonstrativo_solicitacao.rb +14 -0
  55. data/lib/tiss/models/ct_descontos.rb +22 -0
  56. data/lib/tiss/models/ct_diagnostico.rb +18 -0
  57. data/lib/tiss/models/ct_diagnostico_oncologico.rb +34 -0
  58. data/lib/tiss/models/ct_drogas_solicitadas.rb +31 -0
  59. data/lib/tiss/models/ct_elegibilidade_recibo.rb +58 -0
  60. data/lib/tiss/models/ct_elegibilidade_verifica.rb +50 -0
  61. data/lib/tiss/models/ct_fonte_pagadora.rb +14 -0
  62. data/lib/tiss/models/ct_glosa_recibo.rb +54 -0
  63. data/lib/tiss/models/ct_glosa_recibo_odonto.rb +54 -0
  64. data/lib/tiss/models/ct_guia_cabecalho.rb +14 -0
  65. data/lib/tiss/models/ct_guia_cancelamento.rb +22 -0
  66. data/lib/tiss/models/ct_guia_cancelamento_recibo.rb +18 -0
  67. data/lib/tiss/models/ct_guia_dados.rb +44 -0
  68. data/lib/tiss/models/ct_guia_dados_anexo.rb +34 -0
  69. data/lib/tiss/models/ct_guia_dados_odonto.rb +66 -0
  70. data/lib/tiss/models/ct_guia_recurso.rb +26 -0
  71. data/lib/tiss/models/ct_guia_recurso_lote.rb +14 -0
  72. data/lib/tiss/models/ct_guia_valor_total.rb +38 -0
  73. data/lib/tiss/models/ct_guia_valor_total_sadt.rb +34 -0
  74. data/lib/tiss/models/ct_hipotese_diagnostica.rb +14 -0
  75. data/lib/tiss/models/ct_ident_equipe.rb +34 -0
  76. data/lib/tiss/models/ct_ident_equipe_sadt.rb +34 -0
  77. data/lib/tiss/models/ct_intervalo_ciclos.rb +14 -0
  78. data/lib/tiss/models/ct_login_senha.rb +14 -0
  79. data/lib/tiss/models/ct_lote_anexo_status.rb +26 -0
  80. data/lib/tiss/models/ct_lote_status.rb +30 -0
  81. data/lib/tiss/models/ct_motivo_glosa.rb +14 -0
  82. data/lib/tiss/models/ct_opm_utilizada.rb +14 -0
  83. data/lib/tiss/models/ct_opme_dados.rb +14 -0
  84. data/lib/tiss/models/ct_outras_despesas.rb +10 -0
  85. data/lib/tiss/models/ct_pagamento_dados.rb +26 -0
  86. data/lib/tiss/models/ct_pagamento_resumo.rb +22 -0
  87. data/lib/tiss/models/ct_prestador_identificacao.rb +18 -0
  88. data/lib/tiss/models/ct_procedimento_autorizado.rb +51 -0
  89. data/lib/tiss/models/ct_procedimento_dados.rb +18 -0
  90. data/lib/tiss/models/ct_procedimento_executado.rb +59 -0
  91. data/lib/tiss/models/ct_procedimento_executado_honor_indiv.rb +55 -0
  92. data/lib/tiss/models/ct_procedimento_executado_int.rb +55 -0
  93. data/lib/tiss/models/ct_procedimento_executado_odonto.rb +47 -0
  94. data/lib/tiss/models/ct_procedimento_executado_outras.rb +62 -0
  95. data/lib/tiss/models/ct_procedimento_executado_sadt.rb +55 -0
  96. data/lib/tiss/models/ct_procedimento_solicitado.rb +18 -0
  97. data/lib/tiss/models/ct_procedimentos_complementares.rb +18 -0
  98. data/lib/tiss/models/ct_protocolo_anexo_status.rb +18 -0
  99. data/lib/tiss/models/ct_protocolo_detalhe.rb +22 -0
  100. data/lib/tiss/models/ct_protocolo_detalhe_anexo.rb +26 -0
  101. data/lib/tiss/models/ct_protocolo_recebimento.rb +26 -0
  102. data/lib/tiss/models/ct_protocolo_recebimento_anexo.rb +30 -0
  103. data/lib/tiss/models/ct_protocolo_recebimento_recurso.rb +30 -0
  104. data/lib/tiss/models/ct_protocolo_recurso.rb +18 -0
  105. data/lib/tiss/models/ct_protocolo_solicitacao_status.rb +14 -0
  106. data/lib/tiss/models/ct_protocolo_status.rb +18 -0
  107. data/lib/tiss/models/ct_recebimento_lote.rb +14 -0
  108. data/lib/tiss/models/ct_recebimento_recurso.rb +14 -0
  109. data/lib/tiss/models/ct_recibo_cancela_guia.rb +14 -0
  110. data/lib/tiss/models/ct_recibo_comunicacao.rb +14 -0
  111. data/lib/tiss/models/ct_recurso_glosa_recebimento.rb +54 -0
  112. data/lib/tiss/models/ct_resposta_elegibilidade.rb +14 -0
  113. data/lib/tiss/models/ct_resposta_glosa.rb +22 -0
  114. data/lib/tiss/models/ct_resposta_glosa_guia_medica.rb +35 -0
  115. data/lib/tiss/models/ct_resposta_glosa_item_medico.rb +55 -0
  116. data/lib/tiss/models/ct_resposta_recurso_guia_odonto.rb +34 -0
  117. data/lib/tiss/models/ct_resposta_recurso_item_odonto.rb +26 -0
  118. data/lib/tiss/models/ct_situacao_autorizacao.rb +26 -0
  119. data/lib/tiss/models/ct_situacao_clinica.rb +10 -0
  120. data/lib/tiss/models/ct_situacao_inicial.rb +22 -0
  121. data/lib/tiss/models/ct_situacao_protocolo.rb +18 -0
  122. data/lib/tiss/models/ct_valor_credito_desconto.rb +18 -0
  123. data/lib/tiss/models/ct_valor_total.rb +18 -0
  124. data/lib/tiss/models/ctm_anexo_solicitacao_opme.rb +34 -0
  125. data/lib/tiss/models/ctm_anexo_solicitacao_quimio.rb +55 -0
  126. data/lib/tiss/models/ctm_anexo_solicitacao_radio.rb +59 -0
  127. data/lib/tiss/models/ctm_anexo_solicitante.rb +18 -0
  128. data/lib/tiss/models/ctm_autorizacao_internacao.rb +22 -0
  129. data/lib/tiss/models/ctm_autorizacao_opme.rb +30 -0
  130. data/lib/tiss/models/ctm_autorizacao_prorrogacao.rb +22 -0
  131. data/lib/tiss/models/ctm_autorizacao_quimio.rb +67 -0
  132. data/lib/tiss/models/ctm_autorizacao_radio.rb +71 -0
  133. data/lib/tiss/models/ctm_autorizacao_servico.rb +47 -0
  134. data/lib/tiss/models/ctm_beneficiario_comunicacao.rb +22 -0
  135. data/lib/tiss/models/ctm_beneficiario_comunicacao_recibo.rb +18 -0
  136. data/lib/tiss/models/ctm_consulta_atendimento.rb +18 -0
  137. data/lib/tiss/models/ctm_consulta_guia.rb +52 -0
  138. data/lib/tiss/models/ctm_demonstrativo_analise_conta.rb +34 -0
  139. data/lib/tiss/models/ctm_demonstrativo_pagamento.rb +26 -0
  140. data/lib/tiss/models/ctm_guia_lote.rb +14 -0
  141. data/lib/tiss/models/ctm_honorario_individual_guia.rb +58 -0
  142. data/lib/tiss/models/ctm_internacao_dados.rb +42 -0
  143. data/lib/tiss/models/ctm_internacao_dados_saida.rb +18 -0
  144. data/lib/tiss/models/ctm_internacao_resumo_guia.rb +54 -0
  145. data/lib/tiss/models/ctm_internacao_solicitacao_guia.rb +65 -0
  146. data/lib/tiss/models/ctm_prorrogacao_solicitacao_guia.rb +50 -0
  147. data/lib/tiss/models/ctm_recurso_glosa.rb +50 -0
  148. data/lib/tiss/models/ctm_solicitacao_lote.rb +22 -0
  149. data/lib/tiss/models/ctm_sp_sadt_atendimento.rb +22 -0
  150. data/lib/tiss/models/ctm_sp_sadt_guia.rb +54 -0
  151. data/lib/tiss/models/ctm_sp_sadt_solicitacao_guia.rb +65 -0
  152. data/lib/tiss/models/cto_anexo_situacao_inicial.rb +34 -0
  153. data/lib/tiss/models/cto_anexo_situacao_inicialna_gto.rb +22 -0
  154. data/lib/tiss/models/cto_autorizacao_servico.rb +52 -0
  155. data/lib/tiss/models/cto_demonstrativo_odontologia.rb +42 -0
  156. data/lib/tiss/models/cto_guia_odontologia.rb +108 -0
  157. data/lib/tiss/models/cto_odonto_solicitacao_guia.rb +110 -0
  158. data/lib/tiss/models/cto_recurso_glosa_odonto.rb +50 -0
  159. data/lib/tiss/models/dados_beneficiario.rb +28 -0
  160. data/lib/tiss/models/dados_conta.rb +10 -0
  161. data/lib/tiss/models/dados_contratado.rb +22 -0
  162. data/lib/tiss/models/dados_contratado_executante.rb +18 -0
  163. data/lib/tiss/models/dados_executante.rb +22 -0
  164. data/lib/tiss/models/dados_guia.rb +18 -0
  165. data/lib/tiss/models/dados_guias_protocolo.rb +14 -0
  166. data/lib/tiss/models/dados_hospital_solicitado.rb +18 -0
  167. data/lib/tiss/models/dados_internacao.rb +54 -0
  168. data/lib/tiss/models/dados_pagamento.rb +71 -0
  169. data/lib/tiss/models/dados_pagamento_guia.rb +58 -0
  170. data/lib/tiss/models/dados_pagamento_por_data.rb +26 -0
  171. data/lib/tiss/models/dados_prestador.rb +26 -0
  172. data/lib/tiss/models/dados_profissionais_responsaveis.rb +58 -0
  173. data/lib/tiss/models/dados_resumo.rb +10 -0
  174. data/lib/tiss/models/dados_solicitacao.rb +18 -0
  175. data/lib/tiss/models/dados_solicitante.rb +14 -0
  176. data/lib/tiss/models/deb_cred_demonstrativo.rb +10 -0
  177. data/lib/tiss/models/deb_cred_por_data_pagamento.rb +10 -0
  178. data/lib/tiss/models/debitos_creditos_por_data.rb +10 -0
  179. data/lib/tiss/models/declaracoes.rb +22 -0
  180. data/lib/tiss/models/demonstrativo_analise.rb +18 -0
  181. data/lib/tiss/models/demonstrativo_pagamento.rb +22 -0
  182. data/lib/tiss/models/dente_regiao.rb +14 -0
  183. data/lib/tiss/models/dentes.rb +14 -0
  184. data/lib/tiss/models/despesa.rb +24 -0
  185. data/lib/tiss/models/destino.rb +14 -0
  186. data/lib/tiss/models/detalhes_guia.rb +43 -0
  187. data/lib/tiss/models/diagnostico_oncologico_quimioterapia.rb +33 -0
  188. data/lib/tiss/models/diagnostico_oncologico_radio.rb +14 -0
  189. data/lib/tiss/models/drogas_solicitadas.rb +10 -0
  190. data/lib/tiss/models/epilogo.rb +10 -0
  191. data/lib/tiss/models/glosa_anexo.rb +14 -0
  192. data/lib/tiss/models/glosa_guia.rb +10 -0
  193. data/lib/tiss/models/glosa_protocolo.rb +14 -0
  194. data/lib/tiss/models/glosas_procedimento.rb +14 -0
  195. data/lib/tiss/models/guias_canceladas.rb +10 -0
  196. data/lib/tiss/models/guias_cancelamento.rb +14 -0
  197. data/lib/tiss/models/guias_medicas.rb +10 -0
  198. data/lib/tiss/models/guias_odonto.rb +10 -0
  199. data/lib/tiss/models/guias_recurso.rb +22 -0
  200. data/lib/tiss/models/guias_tiss.rb +34 -0
  201. data/lib/tiss/models/hipoteses_diagnosticas.rb +14 -0
  202. data/lib/tiss/models/ident_equipe.rb +10 -0
  203. data/lib/tiss/models/identificacao_opm.rb +26 -0
  204. data/lib/tiss/models/identificacao_solicitante.rb +14 -0
  205. data/lib/tiss/models/identificacao_transacao.rb +22 -0
  206. data/lib/tiss/models/itens_guia.rb +47 -0
  207. data/lib/tiss/models/local_contratado.rb +18 -0
  208. data/lib/tiss/models/lote.rb +14 -0
  209. data/lib/tiss/models/lote_anexo.rb +14 -0
  210. data/lib/tiss/models/mensagem_tiss.rb +27 -0
  211. data/lib/tiss/models/motivos_glosa.rb +10 -0
  212. data/lib/tiss/models/motivos_negativa.rb +10 -0
  213. data/lib/tiss/models/opcao_recurso.rb +14 -0
  214. data/lib/tiss/models/opcao_recurso_guia.rb +18 -0
  215. data/lib/tiss/models/operadora_prestador.rb +50 -0
  216. data/lib/tiss/models/opm.rb +10 -0
  217. data/lib/tiss/models/opme_solicitada.rb +34 -0
  218. data/lib/tiss/models/opme_solicitadas.rb +10 -0
  219. data/lib/tiss/models/origem.rb +14 -0
  220. data/lib/tiss/models/pagamentos.rb +10 -0
  221. data/lib/tiss/models/pagamentos_por_data.rb +26 -0
  222. data/lib/tiss/models/periodo.rb +14 -0
  223. data/lib/tiss/models/periodo_proc.rb +14 -0
  224. data/lib/tiss/models/prestador_autorizado.rb +14 -0
  225. data/lib/tiss/models/prestador_operadora.rb +50 -0
  226. data/lib/tiss/models/procedimento.rb +18 -0
  227. data/lib/tiss/models/procedimento_realizado.rb +11 -0
  228. data/lib/tiss/models/procedimento_solicitado.rb +34 -0
  229. data/lib/tiss/models/procedimentos_adicionais.rb +14 -0
  230. data/lib/tiss/models/procedimentos_autorizados.rb +48 -0
  231. data/lib/tiss/models/procedimentos_complementares.rb +11 -0
  232. data/lib/tiss/models/procedimentos_executados.rb +51 -0
  233. data/lib/tiss/models/procedimentos_realizados.rb +10 -0
  234. data/lib/tiss/models/procedimentos_solicitados.rb +54 -0
  235. data/lib/tiss/models/profissionais.rb +34 -0
  236. data/lib/tiss/models/protocolos.rb +22 -0
  237. data/lib/tiss/models/recebimento_anexo.rb +14 -0
  238. data/lib/tiss/models/recibo_glosa_status.rb +42 -0
  239. data/lib/tiss/models/recurso_guia.rb +58 -0
  240. data/lib/tiss/models/recurso_guia_completa.rb +14 -0
  241. data/lib/tiss/models/recurso_procedimento.rb +55 -0
  242. data/lib/tiss/models/recurso_protocolo.rb +23 -0
  243. data/lib/tiss/models/relacao_glosa.rb +14 -0
  244. data/lib/tiss/models/relacao_guias.rb +70 -0
  245. data/lib/tiss/models/resposta_elegibilidade.rb +14 -0
  246. data/lib/tiss/models/servicos_autorizados.rb +10 -0
  247. data/lib/tiss/models/situacao_demonstrativo_retorno.rb +34 -0
  248. data/lib/tiss/models/totais_bruto_demonstrativo.rb +26 -0
  249. data/lib/tiss/models/totais_brutos_demonstrativo.rb +22 -0
  250. data/lib/tiss/models/totais_brutos_por_data.rb +22 -0
  251. data/lib/tiss/models/totais_demonstrativo.rb +18 -0
  252. data/lib/tiss/models/totais_liquidos_demonstrativo.rb +18 -0
  253. data/lib/tiss/models/totais_liquidos_por_data.rb +18 -0
  254. data/lib/tiss/models/totais_por_data.rb +26 -0
  255. data/lib/tiss/models/totais_por_protocolo.rb +26 -0
  256. data/lib/tiss/models/total_liquido_por_data.rb +18 -0
  257. data/lib/tiss/models/tratamentos_anteriores.rb +30 -0
  258. data/lib/tiss/tiss.rb +39 -0
  259. data/lib/tiss/version.rb +5 -0
  260. data/lib/tiss/xsd/class_maker.rb +242 -0
  261. data/lib/tiss/xsd/convert.rb +26 -0
  262. data/lib/tiss-ruby.rb +3 -0
  263. data/lib/xsd/class_maker.rb +219 -0
  264. data/lib/xsd/convert.rb +26 -0
  265. data/resources/TabelasDominio.doc +0 -0
  266. data/resources/tissAssinaturaDigital_v1.01.xsd +16 -0
  267. data/resources/tissComplexTypesV3_02_00.xsd +1370 -0
  268. data/resources/tissComplexTypesV3_02_01.xsd +1370 -0
  269. data/resources/tissComplexTypesV3_02_02.xsd +1370 -0
  270. data/resources/tissComplexTypesV3_03_01.xsd +1372 -0
  271. data/resources/tissComplexTypesV3_03_02.xsd +1372 -0
  272. data/resources/tissComplexTypesV3_03_03.xsd +1372 -0
  273. data/resources/tissComplexTypesV3_04_00.xsd +1406 -0
  274. data/resources/tissGuiasV3_02_00.xsd +1387 -0
  275. data/resources/tissGuiasV3_02_01.xsd +1388 -0
  276. data/resources/tissGuiasV3_02_02.xsd +1389 -0
  277. data/resources/tissGuiasV3_03_01.xsd +1402 -0
  278. data/resources/tissGuiasV3_03_02.xsd +1401 -0
  279. data/resources/tissGuiasV3_03_03.xsd +1401 -0
  280. data/resources/tissGuiasV3_04_00.xsd +1387 -0
  281. data/resources/tissSimpleTypesV3_02_00.xsd +3158 -0
  282. data/resources/tissSimpleTypesV3_02_01.xsd +3597 -0
  283. data/resources/tissSimpleTypesV3_02_02.xsd +3830 -0
  284. data/resources/tissSimpleTypesV3_03_01.xsd +4120 -0
  285. data/resources/tissSimpleTypesV3_03_02.xsd +4144 -0
  286. data/resources/tissSimpleTypesV3_03_03.xsd +4163 -0
  287. data/resources/tissSimpleTypesV3_04_00.xsd +4233 -0
  288. data/resources/tissV3_02_00.xsd +118 -0
  289. data/resources/tissV3_02_01.xsd +118 -0
  290. data/resources/tissV3_02_02.xsd +121 -0
  291. data/resources/tissV3_03_01.xsd +118 -0
  292. data/resources/tissV3_03_02.xsd +118 -0
  293. data/resources/tissV3_03_03.xsd +118 -0
  294. data/resources/tissV3_04_00.xsd +118 -0
  295. data/resources/xmldsig-core-schema.xsd +309 -0
  296. data/tiss-ruby.gemspec +55 -0
  297. metadata +569 -0
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'erb'
4
+
5
+ module Tiss::Generator
6
+ class ValidatorGenerator < BaseGenerator
7
+ def call(version, name, restrictions, target)
8
+ name = classify "#{underscore(name)}_validator"
9
+ ap name
10
+ base = restrictions
11
+ .attributes['base'].value.split(':').last
12
+
13
+ base = case base
14
+ when 'decimal'
15
+ 'float'
16
+ when 'boolean'
17
+ 'true_class'
18
+ else
19
+ base
20
+ end
21
+
22
+ type = constantize classify base
23
+
24
+ ws_action = select_children(restrictions, 'whiteSpace').first
25
+ ws_action = ws_action.attributes['value'].value unless ws_action.nil?
26
+
27
+ enum_values = select_children(restrictions, 'enumeration').collect do |enum|
28
+ enum.attributes['value'].value
29
+ end
30
+
31
+ pattern = select_children(restrictions, 'pattern').first
32
+ pattern = pattern.attributes['value'].value unless pattern.nil?
33
+
34
+ template = File.read(File.join(template_dir, 'validator_template.erb'))
35
+ file_content = ERB.new(template).result(binding)
36
+ File.open("lib/tiss/#{version}/validators/#{underscore(name)}.rb", 'w+') do |f|
37
+ f.write(file_content)
38
+ end
39
+ File.open("lib/tiss/#{version}/#{version}.rb", 'a') do |f|
40
+ f.puts "require_relative 'validators/#{underscore(name)}'"
41
+ end
42
+ end
43
+ end
44
+ end
data/lib/tiss/model.rb ADDED
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tiss
4
+ module Model
5
+ class Base
6
+ DEFINED_ATTRIBUTES = Hash.new { |hash, key| hash[key] = [] }
7
+
8
+ class << self
9
+ def attr_accessor(*vars)
10
+ @attributes ||= []
11
+ @attributes.concat vars
12
+ super(*vars)
13
+ end
14
+
15
+ attr_reader :attributes
16
+
17
+ def attribute_config(name, **opts)
18
+ DEFINED_ATTRIBUTES[self.name] << { name: name, options: opts }
19
+ end
20
+ end
21
+
22
+ def attributes
23
+ (self.class.ancestors&.second&.attributes || []) + self.class.attributes
24
+ end
25
+
26
+ def attributes_by(version)
27
+ version = version.gsub('.', '_')
28
+
29
+ attributes.map do |key|
30
+ config = attribute_configs.find { |i| i[:name] == key }
31
+
32
+ unless_versions = []
33
+ only_versions = []
34
+
35
+ if config
36
+ unless_versions = config[:options] && config[:options].fetch(:unless, [])
37
+ end
38
+ if config
39
+ only_versions = config[:options] && config[:options].fetch(:only, [])
40
+ end
41
+
42
+ if unless_versions.any? || only_versions.any?
43
+ if (unless_versions.any? && unless_versions.include?(version)) ||
44
+ (only_versions.any? && !only_versions.include?(version))
45
+ nil
46
+ else
47
+ [key, send(key)]
48
+ end
49
+ else
50
+ [key, send(key)]
51
+ end
52
+ end.compact.to_h
53
+ end
54
+
55
+ def attributes_with_values
56
+ attributes.map do |attr|
57
+ [attr, send(attr)]
58
+ end.to_h
59
+ end
60
+
61
+ def attribute_configs
62
+ DEFINED_ATTRIBUTES[self.class.name]
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,18 @@
1
+
2
+ module Tiss::Model
3
+ class AnexoClinico < Base
4
+
5
+ # @type: CtmAnexoSolicitacaoQuimio
6
+ attr_accessor :solicitacaoQuimioterapia
7
+
8
+ # @type: CtmAnexoSolicitacaoRadio
9
+ attr_accessor :solicitacaoRadioterapia
10
+
11
+ # @type: CtmAnexoSolicitacaoOpme
12
+ attr_accessor :solicitacaoOPME
13
+
14
+
15
+
16
+
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+
2
+ module Tiss::Model
3
+ class AnexoClinicoProrrogacao < Base
4
+
5
+ # @type: CtmAnexoSolicitacaoQuimio
6
+ attr_accessor :solicitacaoQuimioterapia
7
+
8
+ # @type: CtmAnexoSolicitacaoRadio
9
+ attr_accessor :solicitacaoRadioterapia
10
+
11
+ # @type: CtmAnexoSolicitacaoOpme
12
+ attr_accessor :solicitacaoOPME
13
+
14
+
15
+
16
+
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+
2
+ module Tiss::Model
3
+ class AnexosClinicos < Base
4
+
5
+ # @type: CtmAutorizacaoOpme
6
+ attr_accessor :anexoOPME
7
+
8
+ # @type: CtmAutorizacaoQuimio
9
+ attr_accessor :anexoQuimio
10
+
11
+ # @type: CtmAutorizacaoRadio
12
+ attr_accessor :anexoRadio
13
+
14
+ # @type: CtoAnexoSituacaoInicial
15
+ attr_accessor :anexoSituacaoInicial
16
+
17
+
18
+
19
+
20
+
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+
2
+ module Tiss::Model
3
+ class AnexosGuiasTiss < Base
4
+
5
+ # @type: CtoAnexoSituacaoInicial
6
+ attr_accessor :anexoSituacaoInicial
7
+
8
+ # @type: CtmAnexoSolicitacaoRadio
9
+ attr_accessor :anexoSolicitacaoRadio
10
+
11
+ # @type: CtmAnexoSolicitacaoQuimio
12
+ attr_accessor :anexoSolicitacaoQuimio
13
+
14
+ # @type: CtmAnexoSolicitacaoOpme
15
+ attr_accessor :anexoSolicitacaoOPME
16
+
17
+
18
+
19
+
20
+
21
+ end
22
+ end
@@ -0,0 +1,18 @@
1
+
2
+ module Tiss::Model
3
+ class Beneficiario < Base
4
+
5
+ # @type: StTexto20
6
+ attr_accessor :numeroCarteira
7
+
8
+ # @type: StTexto70
9
+ attr_accessor :nomeBeneficiario
10
+
11
+ # @type: DmSimNao
12
+ attr_accessor :atendimentoRN
13
+
14
+
15
+
16
+
17
+ end
18
+ end
@@ -0,0 +1,26 @@
1
+
2
+ module Tiss::Model
3
+ class CabecalhoDemonstrativoOdonto < Base
4
+
5
+ # @type: StRegistroAns
6
+ attr_accessor :registroANS
7
+
8
+ # @type: StTexto12
9
+ attr_accessor :numeroDemonstrativo
10
+
11
+ # @type: StTexto70
12
+ attr_accessor :nomeOperadora
13
+
14
+ # @type: StCnpj
15
+ attr_accessor :cnpjOper
16
+
17
+ # @type: PeriodoProc
18
+ attr_accessor :periodoProc
19
+
20
+
21
+
22
+
23
+
24
+
25
+ end
26
+ end
@@ -0,0 +1,11 @@
1
+ require_relative 'ct_guia_cabecalho'
2
+
3
+ module Tiss::Model
4
+ class CabecalhoGuia < CtGuiaCabecalho
5
+
6
+ # @type: StTexto20
7
+ attr_accessor :guiaPrincipal
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,36 @@
1
+
2
+ module Tiss::Model
3
+ class CabecalhoTransacao < Base
4
+
5
+ # @type: IdentificacaoTransacao
6
+ attr_accessor :identificacaoTransacao
7
+
8
+ # @type: DmTipoGlosa
9
+ attr_accessor :falhaNegocio
10
+
11
+ # @type: Origem
12
+ attr_accessor :origem
13
+
14
+ # @type: Destino
15
+ attr_accessor :destino
16
+
17
+ # @type: DmVersao
18
+ attr_accessor :versaoPadrao
19
+
20
+ # @type: CtLoginSenha
21
+ attr_accessor :loginSenhaPrestador
22
+
23
+ # @type: DmVersao
24
+ attr_accessor :Padrao
25
+
26
+
27
+
28
+
29
+
30
+ attribute_config :versaoPadrao, only: %w[3_02_00 3_02_01]
31
+
32
+
33
+ attribute_config :Padrao, unless: %w[3_02_00 3_02_01]
34
+
35
+ end
36
+ end
@@ -0,0 +1,14 @@
1
+
2
+ module Tiss::Model
3
+ class CodProfissional < Base
4
+
5
+ # @type: StTexto14
6
+ attr_accessor :codigoPrestadorNaOperadora
7
+
8
+ # @type: StCpf
9
+ attr_accessor :cpfContratado
10
+
11
+
12
+
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+
2
+ module Tiss::Model
3
+ class CodigoContratado < Base
4
+
5
+ # @type: StTexto14
6
+ attr_accessor :codigoNaOperadora
7
+
8
+ # @type: StCnpj
9
+ attr_accessor :cnpjLocalExecutante
10
+
11
+
12
+
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ require_relative 'ct_contratado_dados'
2
+
3
+ module Tiss::Model
4
+ class ContratadoExecutante < CtContratadoDados
5
+
6
+ # @type: StTexto7
7
+ attr_accessor :CNES
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+
2
+ module Tiss::Model
3
+ class CpfCnpjContratado < Base
4
+
5
+ # @type: StCnpj
6
+ attr_accessor :cnpjPrestador
7
+
8
+ # @type: StCpf
9
+ attr_accessor :cpfContratado
10
+
11
+
12
+
13
+ end
14
+ end
@@ -0,0 +1,34 @@
1
+
2
+ module Tiss::Model
3
+ class CtAnexoCabecalho < Base
4
+
5
+ # @type: StRegistroAns
6
+ attr_accessor :registroANS
7
+
8
+ # @type: StTexto20
9
+ attr_accessor :numeroGuiaAnexo
10
+
11
+ # @type: StTexto20
12
+ attr_accessor :numeroGuiaReferenciada
13
+
14
+ # @type: StTexto20
15
+ attr_accessor :numeroGuiaOperadora
16
+
17
+ # @type: StData
18
+ attr_accessor :dataSolicitacao
19
+
20
+ # @type: StTexto20
21
+ attr_accessor :senha
22
+
23
+ # @type: StData
24
+ attr_accessor :dataAutorizacao
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+ end
34
+ end
@@ -0,0 +1,14 @@
1
+
2
+ module Tiss::Model
3
+ class CtAnexoLote < Base
4
+
5
+ # @type: StTexto12
6
+ attr_accessor :numeroLote
7
+
8
+ # @type: AnexosGuiasTiss
9
+ attr_accessor :AnexosGuiasTISS
10
+
11
+
12
+
13
+ end
14
+ end
@@ -0,0 +1,38 @@
1
+
2
+ module Tiss::Model
3
+ class CtAnexoRecebimento < Base
4
+
5
+ # @type: StTexto12
6
+ attr_accessor :nrProtocoloRecebimento
7
+
8
+ # @type: StData
9
+ attr_accessor :dataEnvioAnexo
10
+
11
+ # @type: StTexto12
12
+ attr_accessor :numeroLote
13
+
14
+ # @type: StRegistroAns
15
+ attr_accessor :registroANS
16
+
17
+ # @type: CtContratadoDados
18
+ attr_accessor :dadosPrestador
19
+
20
+ # @type: StNumerico3
21
+ attr_accessor :qtAnexosClinicos
22
+
23
+ # @type: AnexosClinicos
24
+ attr_accessor :anexosClinicos
25
+
26
+ # @type: StTexto500
27
+ attr_accessor :observacao
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+ end
38
+ end
@@ -0,0 +1,36 @@
1
+
2
+ module Tiss::Model
3
+ class CtAutorizacaoDados < Base
4
+
5
+ # @type: StTexto20
6
+ attr_accessor :numeroGuiaPrestador
7
+
8
+ # @type: StTexto20
9
+ attr_accessor :numeroGuiaOperadora
10
+
11
+ # @type: StData
12
+ attr_accessor :dataAutorizacao
13
+
14
+ # @type: StTexto20
15
+ attr_accessor :senha
16
+
17
+ # @type: StData
18
+ attr_accessor :dataValidadeSenha
19
+
20
+ # @type: DmAusenciaCodValidacao
21
+ attr_accessor :ausenciaCodValidacao
22
+
23
+ # @type: StTexto10
24
+ attr_accessor :codValidacao
25
+
26
+
27
+
28
+
29
+
30
+
31
+ attribute_config :ausenciaCodValidacao, only: %w[3_04_00]
32
+
33
+ attribute_config :codValidacao, only: %w[3_04_00]
34
+
35
+ end
36
+ end
@@ -0,0 +1,32 @@
1
+
2
+ module Tiss::Model
3
+ class CtAutorizacaoInternacao < Base
4
+
5
+ # @type: StTexto20
6
+ attr_accessor :numeroGuiaOperadora
7
+
8
+ # @type: StData
9
+ attr_accessor :dataAutorizacao
10
+
11
+ # @type: StTexto20
12
+ attr_accessor :senha
13
+
14
+ # @type: StData
15
+ attr_accessor :dataValidadeSenha
16
+
17
+ # @type: DmAusenciaCodValidacao
18
+ attr_accessor :ausenciaCodValidacao
19
+
20
+ # @type: StTexto10
21
+ attr_accessor :codValidacao
22
+
23
+
24
+
25
+
26
+
27
+ attribute_config :ausenciaCodValidacao, only: %w[3_04_00]
28
+
29
+ attribute_config :codValidacao, only: %w[3_04_00]
30
+
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+
2
+ module Tiss::Model
3
+ class CtAutorizacaoSadt < Base
4
+
5
+ # @type: StTexto20
6
+ attr_accessor :numeroGuiaOperadora
7
+
8
+ # @type: StData
9
+ attr_accessor :dataAutorizacao
10
+
11
+ # @type: StTexto20
12
+ attr_accessor :senha
13
+
14
+ # @type: StData
15
+ attr_accessor :dataValidadeSenha
16
+
17
+ # @type: DmAusenciaCodValidacao
18
+ attr_accessor :ausenciaCodValidacao
19
+
20
+ # @type: StTexto10
21
+ attr_accessor :codValidacao
22
+
23
+
24
+
25
+
26
+
27
+ attribute_config :ausenciaCodValidacao, only: %w[3_04_00]
28
+
29
+ attribute_config :codValidacao, only: %w[3_04_00]
30
+
31
+ end
32
+ end
@@ -0,0 +1,18 @@
1
+
2
+ module Tiss::Model
3
+ class CtAutorizacaoSolicitaStatus < Base
4
+
5
+ # @type: CtGuiaCabecalho
6
+ attr_accessor :identificacaoSolicitacao
7
+
8
+ # @type: CtBeneficiarioDados
9
+ attr_accessor :dadosBeneficiario
10
+
11
+ # @type: CtContratadoDados
12
+ attr_accessor :dadosContratado
13
+
14
+
15
+
16
+
17
+ end
18
+ end
@@ -0,0 +1,36 @@
1
+
2
+ module Tiss::Model
3
+ class CtBeneficiarioDados < Base
4
+
5
+ # @type: StTexto20
6
+ attr_accessor :numeroCarteira
7
+
8
+ # @type: DmSimNao
9
+ attr_accessor :atendimentoRN
10
+
11
+ # @type: StTexto70
12
+ attr_accessor :nomeBeneficiario
13
+
14
+ # @type: StTexto15
15
+ attr_accessor :numeroCNS
16
+
17
+ # @type: Base64Binary
18
+ attr_accessor :identificadorBeneficiario
19
+
20
+ # @type: DmTipoIdent
21
+ attr_accessor :tipoIdent
22
+
23
+ # @type: Base64Binary
24
+ attr_accessor :templateBiometrico
25
+
26
+
27
+
28
+
29
+
30
+
31
+ attribute_config :tipoIdent, only: %w[3_04_00]
32
+
33
+ attribute_config :templateBiometrico, only: %w[3_04_00]
34
+
35
+ end
36
+ end
@@ -0,0 +1,52 @@
1
+
2
+ module Tiss::Model
3
+ class CtContaMedicaResumo < Base
4
+
5
+ # @type: StTexto12
6
+ attr_accessor :numeroLotePrestador
7
+
8
+ # @type: StTexto12
9
+ attr_accessor :numeroProtocolo
10
+
11
+ # @type: StData
12
+ attr_accessor :dataProtocolo
13
+
14
+ # @type: CtMotivoGlosa
15
+ attr_accessor :GlosaProtocolo
16
+
17
+ # @type: DmStatusProtocolo
18
+ attr_accessor :situacaoProtrocolo
19
+
20
+ # @type: RelacaoGuias
21
+ attr_accessor :relacaoGuias
22
+
23
+ # @type: StDecimal102
24
+ attr_accessor :valorInformadoProtocolo
25
+
26
+ # @type: StDecimal102
27
+ attr_accessor :valorProcessadoProtocolo
28
+
29
+ # @type: StDecimal102
30
+ attr_accessor :valorLiberadoProtocolo
31
+
32
+ # @type: StDecimal102
33
+ attr_accessor :valorGlosaProtocolo
34
+
35
+ # @type: DmStatusProtocolo
36
+ attr_accessor :situacaoProtocolo
37
+
38
+
39
+
40
+
41
+
42
+ attribute_config :situacaoProtrocolo, only: %w[3_02_00]
43
+
44
+
45
+
46
+
47
+
48
+
49
+ attribute_config :situacaoProtocolo, unless: %w[3_02_00]
50
+
51
+ end
52
+ end
@@ -0,0 +1,22 @@
1
+
2
+ module Tiss::Model
3
+ class CtContratadoDados < Base
4
+
5
+ # @type: StTexto14
6
+ attr_accessor :codigoPrestadorNaOperadora
7
+
8
+ # @type: StCpf
9
+ attr_accessor :cpfContratado
10
+
11
+ # @type: StCnpj
12
+ attr_accessor :cnpjContratado
13
+
14
+ # @type: StTexto70
15
+ attr_accessor :nomeContratado
16
+
17
+
18
+
19
+
20
+
21
+ end
22
+ end
@@ -0,0 +1,26 @@
1
+
2
+ module Tiss::Model
3
+ class CtContratadoProfissionalDados < Base
4
+
5
+ # @type: StTexto70
6
+ attr_accessor :nomeProfissional
7
+
8
+ # @type: DmConselhoProfissional
9
+ attr_accessor :conselhoProfissional
10
+
11
+ # @type: StTexto15
12
+ attr_accessor :numeroConselhoProfissional
13
+
14
+ # @type: DmUf
15
+ attr_accessor :UF
16
+
17
+ # @type: DmCbos
18
+ attr_accessor :CBOS
19
+
20
+
21
+
22
+
23
+
24
+
25
+ end
26
+ end