lexml / lexml-parser-projeto-lei

Parser LexML de documentos normativos
GNU General Public License v2.0
10 stars 4 forks source link

Problema no Validation com Títulos e Capítulos #5

Closed laurocesar closed 7 years ago

laurocesar commented 7 years ago

Testando o Validation, ao executar o parser da articulação abaixo, não são identificadas falhas legislativas. No entanto, falta o Art. 2:

TÍTULO I
DAS DISPOSIÇÕES GERAIS
Art. 1º Primeiro artigolo.
Art. 3º Segundo artigo.
TÍTULO II
DO CERTIFICADO DE ENTIDADE BENEFICENTE DE ASSISTÊNCIA SOCIAL NA ÁREA DE SAÚDE (CEBAS)
CAPÍTULO I
DAS ENTIDADES BENEFICENTES DE ASSISTÊNCIA SOCIAL NA ÁREA DE SAÚDE
Seção I
Dos Requisitos para Obtenção da Concessão ou Renovação do CEBAS
Art. 4º O Certificado de Entidade Beneficente de Assistência Social na Área de Saúde (CEBAS) será concedido às pessoas jurídicas de direito privado, sem fins lucrativos, reconhecidas como entidades beneficentes de assistência social com a finalidade de prestação de serviços na área de saúde e que atendam ao disposto na Lei nº 12.101, de 27 de novembro de 2009, na Lei nº 12.868, de 15 de outubro de 2013, no Decreto nº 7.300, de 14 setembro de 2010, no Decreto nº 8.242, de 23 de maio de 2014, e nesta Portaria.
Parágrafo único. As pessoas jurídicas de que trata o "caput" poderão comprovar sua condição de beneficente para fins de certificação das seguintes formas:
I - pela prestação anual de serviços ao SUS no percentual mínimo de 60% (sessenta por cento), em conformidade com o art. 4º e 6º da Lei nº 12.101, de 2009;
II - pela prestação anual de serviços prestados ao SUS em percentual menor que 60% (sessenta por cento) e por aplicação de percentual da receita efetivamente recebida da prestação de serviços de saúde em gratuidade, em conformidade com o art. 8º da Lei nº 12.101, de 2009;
III - pela aplicação do percentual de 20% (vinte por cento) da receita efetivamente recebida da prestação de serviços de saúde em gratuidade, quando não houver interesse de contratação pelo gestor do SUS, em conformidade com o art. 8º, inciso I da Lei nº 12.101, de 2009;
IV - pela realização de projetos de apoio ao desenvolvimento institucional do SUS, em conformidade com o art. 11 da Lei 12.101, de 2009;
V - algo
VI - pela prestação de serviços ao SUS de atendimento e acolhimento a pessoas com transtornos decorrentes do uso, abuso ou dependência de substância psicoativa, em conformidade com o art. 7- A da Lei nº 12.101, de 2009;
VII - pela atuação exclusiva na promoção da saúde, sem exigência de contraprestação do usuário pelas ações e serviços de saúde realizados, em conformidade com o art. 8-A da Lei nº 12.101, de 2009; e
VIII - pela execução de ações exclusivamente de promoção da saúde voltadas para pessoas com transtornos decorrentes do uso, abuso ou dependência de drogas, desde que comprovem a aplicação de, no mínimo, 20% (vinte por cento) de sua receita bruta em ações de gratuidade, em conformidade com o art. 8-B da Lei nº 12.101, de 2009.

Caso se mantenha somente o Título I, o sistema funciona como esperado:

Articulacao Validation:
msg: None; posição: título i do art. 1º título i do art. 3º; Categoria: 1 - Erro de técnica legislativa; Tipo : 3 - Dispositivos com descontinuidade.
TÍTULO I
DAS DISPOSIÇÕES GERAIS
Art. 1º Primeiro artigolo.
Art. 3º Segundo artigo.

Caso se retire o título inicial, como abaixo obtém-se isto:

Articulacao Validation:
msg: None; posição: título ii; Categoria: 1 - Erro de técnica legislativa; Tipo : 4 - Dispositivo inicial com numeração inválida
msg: None; posição: art. 1º art. 3º; Categoria: 1 - Erro de técnica legislativa; Tipo : 3 - Dispositivos com descontinuidade.
msg: None; posição: título ii do capítulo i da seção i do art. 4º do parágrafo único. do iv – título ii do capítulo i da seção i do art. 4º do parágrafo único. do vi –; Categoria: 1 - Erro de técnica legislativa; Tipo : 3 - Dispositivos com descontinuidade.
Art. 1º Primeiro artigolo.
Art. 3º Segundo artigo.
TÍTULO II
DO CERTIFICADO DE ENTIDADE BENEFICENTE DE ASSISTÊNCIA SOCIAL NA ÁREA DE SAÚDE (CEBAS)
CAPÍTULO I
DAS ENTIDADES BENEFICENTES DE ASSISTÊNCIA SOCIAL NA ÁREA DE SAÚDE
Seção I
Dos Requisitos para Obtenção da Concessão ou Renovação do CEBAS
Art. 4º O Certificado de Entidade Beneficente de Assistência Social na Área de Saúde (CEBAS) será concedido às pessoas jurídicas de direito privado, sem fins lucrativos, reconhecidas como entidades beneficentes de assistência social com a finalidade de prestação de serviços na área de saúde e que atendam ao disposto na Lei nº 12.101, de 27 de novembro de 2009, na Lei nº 12.868, de 15 de outubro de 2013, no Decreto nº 7.300, de 14 setembro de 2010, no Decreto nº 8.242, de 23 de maio de 2014, e nesta Portaria.
Parágrafo único. As pessoas jurídicas de que trata o "caput" poderão comprovar sua condição de beneficente para fins de certificação das seguintes formas:
I - pela prestação anual de serviços ao SUS no percentual mínimo de 60% (sessenta por cento), em conformidade com o art. 4º e 6º da Lei nº 12.101, de 2009;
II - pela prestação anual de serviços prestados ao SUS em percentual menor que 60% (sessenta por cento) e por aplicação de percentual da receita efetivamente recebida da prestação de serviços de saúde em gratuidade, em conformidade com o art. 8º da Lei nº 12.101, de 2009;
III - pela aplicação do percentual de 20% (vinte por cento) da receita efetivamente recebida da prestação de serviços de saúde em gratuidade, quando não houver interesse de contratação pelo gestor do SUS, em conformidade com o art. 8º, inciso I da Lei nº 12.101, de 2009;
IV - pela realização de projetos de apoio ao desenvolvimento institucional do SUS, em conformidade com o art. 11 da Lei 12.101, de 2009;

VI - pela prestação de serviços ao SUS de atendimento e acolhimento a pessoas com transtornos decorrentes do uso, abuso ou dependência de substância psicoativa, em conformidade com o art. 7- A da Lei nº 12.101, de 2009;
VII - pela atuação exclusiva na promoção da saúde, sem exigência de contraprestação do usuário pelas ações e serviços de saúde realizados, em conformidade com o art. 8-A da Lei nº 12.101, de 2009; e
VIII - pela execução de ações exclusivamente de promoção da saúde voltadas para pessoas com transtornos decorrentes do uso, abuso ou dependência de drogas, desde que comprovem a aplicação de, no mínimo, 20% (vinte por cento) de sua receita bruta em ações de gratuidade, em conformidade com o art. 8-B da Lei nº 12.101, de 2009.

Código utilizado:

package ctestscala.lexml

import java.io.InputStream

import scala.xml.Text

import br.gov.lexml.parser.pl.ProjetoLeiParser
import br.gov.lexml.parser.pl.block.Block
import br.gov.lexml.parser.pl.block.Paragraph
import br.gov.lexml.parser.pl.errors.ParseProblem
import br.gov.lexml.parser.pl.metadado.Metadado
import br.gov.lexml.parser.pl.output.LexmlRenderer
import br.gov.lexml.parser.pl.validation.Validation
import br.gov.lexml.parser.pl.profile.Lei

object App extends App {

  val inTXT = Thread.currentThread().getContextClassLoader().getResourceAsStream("PRT834-2016-Validation.txt")
  val txt = scala.io.Source.fromInputStream(inTXT).getLines().toList
  val txtParagraphList = txt.map(x=> Paragraph(Seq(Text(x))))

  val profile = Lei
  val metadado = Metadado(profile, hashFonte = None)

  val parser = new ProjetoLeiParser(profile)

  //executa o parser e obtem a articulação
  val articulacao : List[Block] = parser.parseArticulacao(txtParagraphList, false)

  //imprime xml da articulação
  println ( LexmlRenderer.renderArticulacao(articulacao).toString )

  println("Articulacao Validation:")
  Validation.validaEstrutura(articulacao).foreach { printParseProblem }

  def printParseProblem(x: ParseProblem) = {
    println ("msg: " + x.msg
        + "; posição: " + x.pos.mkString(" ")
        + "; Categoria: " + x.problemType.category.code + " - "+ x.problemType.category.description
        + "; Tipo : " + x.problemType.code + " - "+ x.problemType.description)
  }

}
laurocesar commented 7 years ago

Testado do corrigido