Pular para o conteúdo principal

Tag Datamart

Após o processamento dos dados estatísticos, o processo no Elasticsearch receberá uma etiqueta contendo os metadados resultantes, incluindo o ID do Datamart, Situação Atual, Fase Atual, Data da Baixa, Data do Caso Novo e Flag Criminal:

Exemplo da etiqueta do datamart:

...
"datamart" : {
"@timestamp" : "2024-11-09T18:07:40.192489",
"updated_at" : "2024-11-09T04:33:14.118380",
"id_situacao_atual" : 10,
"id" : 639186446,
"situacao_atual" : "Baixado definitivamente",
"id_fase_atual" : 4,
"fase_atual" : "OUTRO",
"data_cn" : "2005-04-28T00:00:00",
"data_situacao_atual" : "2024-04-03T11:33:46",
"criminal" : false,
"data_baixa" : "2011-01-10T00:00:00"
}

A partir desses metadas é possível, por exemplo, identificar as chaves do Datamart de processos sigilosos e as respectivas chaves do Datajud (Elastic) para realização de futuras manutenções.

Consultas via Kibana

Dados consolidados:

Processos em Tramitação por Grau:

GET view-processos-sigilo-*/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"group_by_grau": {
"terms": {
"field": "grau",
"size": 5
},
"aggs": {
"group_by_situacao": {
"terms": {
"field": "datamart.situacao_atual.keyword",
"size": 100
}
}
}
}
}
}

IDs do Datamart de processos Sigilosos

Processos em segredo de justiça na situação "Tramitando":

GET view-processos-sigilo-*/_search
{
"query": {
"bool": {
"must": [
{
"range": {
"dadosBasicos.nivelSigilo": {
"gte": 1
}
}
},
{
"term": {
"datamart.id_situacao_atual": {
"value": 25
}
}
}
]
}
}
}

ETL de dados do Datajud usando a Tag Datamart

CSV dos processos com IDs sigilosos do Painel de Estatísticas

Para os processos sigilosos, os dados exportados para download do Painel de Estatística apresentam apenas a identificação do ID do Datamart como mostra a tabela abaixo:

TribunalMunicípioAnoMêsProcesso
CNJBRASÍLIA20242sigiloso(405283225)
CNJBRASÍLIA20246sigiloso(405283291)
CNJBRASÍLIA20238sigiloso(405283312)

A partir do script abaixo, é possível gerar a relação dos processos no Datajud a partir da lista de IDs do Datamart que deseja pesquisar:

Python com Pandas e Elastisearch
from elasticsearch import Elasticsearch
import pandas as pd

url = "https://api.datajud.cnj.jus.br"

user = '<Usuário da API Datajud>'
password = '<Senha da API Datajud>'

# Preparando a Consulta
# Processos com IDs 405283225, 405283291, 405283312
consulta_dsl = {
"terms": {
"datamart.id": [405283225, 405283291, 405283312]
}
}

# Conexão com o Elasticsearch
client = Elasticsearch(
url, # Elasticsearch endpoint
basic_auth=(user, password), # Usuário e senha
request_timeout=60, # Timeout da requisição em segundos
)

# Realizando a consulta
response = client.search(index="view-processos-sigilo-*",
query=consulta_dsl,
source_includes=["datamart.*",
"dadosBasicos.siglaTribunal",
"dadosBasicos.nivelSigilo",
"dadosBasicos.grau",
"dadosBasicos.numero"], # Campos que serão retornados
)

# Transformando a resposta em um DataFrame
df = pd.json_normalize(response['hits']['hits'])

# Salvando o DataFrame em um arquivo CSV
write_csv = df.to_csv('processos_sigilosos.csv', sep=';', index=False)

CSV com processos "Tramitando" Sigilosos do Datamart

Além disso, é possível pesquisar por qualquer parâmetro disponível na tag datamart, conforme o exemplo abaixo que filtra os processos sigilosos em tramitação:

Python com Pandas e Elastisearch
from elasticsearch import Elasticsearch
import pandas as pd

url = "https://api.datajud.cnj.jus.br"

user = '<Usuário da API Datajud>'
password = '<Senha da API Datajud>'

# Preparando a Consulta
# Processos em tramitação com nível de sigilo 1 ou superior
consulta_dsl = {
"bool": {
"must": [
{
"range": {
"dadosBasicos.nivelSigilo": {
"gte": 1
}
}
},
{
"term": {
"datamart.id_situacao_atual": {
"value": 25
}
}
}
]
}
}

# Conexão com o Elasticsearch
client = Elasticsearch(
url, # Elasticsearch endpoint
basic_auth=(user, password), # Usuário e senha
request_timeout=60, # Timeout da requisição em segundos
)

# Realizando a consulta
response = client.search(index="view-processos-sigilo-*",
query=consulta_dsl,
source_includes=["datamart.*",
"dadosBasicos.siglaTribunal",
"dadosBasicos.nivelSigilo",
"dadosBasicos.grau",
"dadosBasicos.numero"], # Campos que serão retornados
)

# Transformando a resposta em um DataFrame
df = pd.json_normalize(response['hits']['hits'])

# Salvando o DataFrame em um arquivo CSV
write_csv = df.to_csv('processos_sigilosos.csv', sep=';', index=False)

Por padrão, as pesquisas na API do Elasticsearch retornam até 10 registros por solicitação. No entanto, é possível aumentar esse número utilizando o parâmetro "size" para a paginação dos registros. Esse parâmetro permite especificar quantos resultados devem ser exibidos por página, podendo variar de 10 até 10.000 registros. Para mais informações, consulte a Pesquisa com Paginação.