Commit e8d6bbe27dfedc4dc2de8ac7c50837e4c6db054c

Authored by Edmar Moretti
1 parent faf55975

inclusão de cubos virtuais para cada variável

ferramentas/saiku/esquemaxml.php
... ... @@ -7,9 +7,9 @@
7 7 //utilize $regiao para obter o xml de uma so regiao
8 8 //
9 9 /**
10   -http://localhost/i3geo/ferramentas/saiku/esquemaxml.php?output=&xmlesquema=http://localhost/i3geo/ferramentas/saiku/testemondrian.xml&output=xml
11   -http://localhost/i3geo/ferramentas/saiku/esquemaxml.php?xmlesquema=&output=xml&regiao=1
12   -*/
  10 + http://localhost/i3geo/ferramentas/saiku/esquemaxml.php?output=xml
  11 + http://localhost/i3geo/ferramentas/saiku/esquemaxml.php?xmlesquema=&output=xml&regiao=1
  12 + */
13 13  
14 14 //
15 15 //quando o saiku e iniciado de fora do i3geo, e necessario inicializar um mapfile para uso como base dos mapas
... ... @@ -90,9 +90,14 @@ $VirtualCubeDimensionDaRegiao = array();
90 90 $VirtualCubeMeasureDaRegiao = array();
91 91 $nivelDaDimensao = array();
92 92  
  93 +$VirtualCubeDimensionDaMedida = array();
  94 +$CubosPorMedida = array();
  95 +
93 96 $dimRegioes = dimensoesGeo();
94 97  
95   -$xmlRegioes = array_map(function($element){return $element['xml'];}, $dimRegioes);
  98 +$xmlRegioes = array_map(function($element){
  99 + return $element['xml'];
  100 +}, $dimRegioes);
96 101 $xmlRegioes = implode(" ",$xmlRegioes);
97 102  
98 103 //
... ... @@ -116,8 +121,10 @@ $xmlCuboTodas = cuboTodas();
116 121 //
117 122 $xmlCuboRegioes = cuboRegioes();
118 123  
  124 +$xmlCuboVariaveis = cuboVariaveis();
  125 +
119 126 $xml = "<Schema name='i3Geo Metaestat'>";
120   -$xml .= $xmlTempo.$xmlRegioes.$xmlOutrasDim.$xmlDimensoesTabelas.$xmlCuboRegioes.$xmlCuboTodas;
  127 +$xml .= $xmlTempo.$xmlRegioes.$xmlOutrasDim.$xmlDimensoesTabelas.$xmlCuboRegioes.$xmlCuboTodas.$xmlCuboVariaveis;
121 128 $xml .= "</Schema>";
122 129  
123 130 //xml pronto!!!!!
... ... @@ -298,8 +305,8 @@ function pegaSelecaoRegioes(){
298 305 }
299 306 }
300 307 return array(
301   - "selecaoRegiao"=>$selecaoRegiao,
302   - "codigo_tipo_regiao"=>$codigo_tipo_regiao
  308 + "selecaoRegiao"=>$selecaoRegiao,
  309 + "codigo_tipo_regiao"=>$codigo_tipo_regiao
303 310 );
304 311 }
305 312 }
... ... @@ -360,7 +367,7 @@ function sqlDasRegioes($regiao,$caminho,$chavesRegiao){
360 367 $nomesColunas[] = " nome".$regiaoJoin["codigo_tipo_regiao"];
361 368  
362 369 $juncoes .= " JOIN {$regiaoJoin['esquemadb']}.{$regiaoJoin['tabela']} as $tabelaAtual ON
363   - $tabelaAtual.$colunaLigacaoAtual::text = $tabelaAnterior.$colunaLigacaoAnterior::text
  370 + $tabelaAtual.$colunaLigacaoAtual::text = $tabelaAnterior.$colunaLigacaoAnterior::text
364 371 ";
365 372 $codRegioes[] = $regiaoJoin["codigo_tipo_regiao"];
366 373 }
... ... @@ -403,12 +410,12 @@ function dimensoesGeo(){
403 410 $sqls = array();
404 411 $temp = converte($regiao["nome_tipo_regiao"]);
405 412 $xml1 = "
406   - <Dimension name='codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."' caption='Onde:".$temp."'>
407   - <Hierarchy hasAll='true' primaryKey='codigo{$regiao["codigo_tipo_regiao"]}'>
  413 + <Dimension name='codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."' caption='Onde:".$temp."'>
  414 + <Hierarchy hasAll='true' primaryKey='codigo{$regiao["codigo_tipo_regiao"]}'>
408 415 ";
409 416 $xml2 = "
410   - <Dimension name='codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."_geocod' caption='GeoCod:".$temp."'>
411   - <Hierarchy hasAll='true' primaryKey='codigo{$regiao["codigo_tipo_regiao"]}'>
  417 + <Dimension name='codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."_geocod' caption='GeoCod:".$temp."'>
  418 + <Hierarchy hasAll='true' primaryKey='codigo{$regiao["codigo_tipo_regiao"]}'>
412 419 ";
413 420 //
414 421 //cria uma view juntando as tabelas da hierarquia de regioes
... ... @@ -433,13 +440,13 @@ function dimensoesGeo(){
433 440  
434 441 $temp = converte($regiao["nome_tipo_regiao"]);
435 442 $niveisXml1[] = "
436   - <Level name='".$temp."' column='codigo{$regiao["codigo_tipo_regiao"]}' nameColumn='nome".$regiao["codigo_tipo_regiao"]."'
437   - uniqueMembers='false' />
438   - ";
  443 + <Level name='".$temp."' column='codigo{$regiao["codigo_tipo_regiao"]}' nameColumn='nome".$regiao["codigo_tipo_regiao"]."'
  444 + uniqueMembers='false' />
  445 + ";
439 446 $niveisXml2[] = "
440   - <Level name='".$temp." - GeoCod #".$regiao["codigo_tipo_regiao"]."' column='codigo{$regiao["codigo_tipo_regiao"]}' nameColumn='codigo".$regiao["codigo_tipo_regiao"]."'
441   - uniqueMembers='false' />
442   - ";
  447 + <Level name='".$temp." - GeoCod #".$regiao["codigo_tipo_regiao"]."' column='codigo{$regiao["codigo_tipo_regiao"]}' nameColumn='codigo".$regiao["codigo_tipo_regiao"]."'
  448 + uniqueMembers='false' />
  449 + ";
443 450 //juncoes
444 451 while($caminho){
445 452 $a = array_shift($caminho);
... ... @@ -482,14 +489,14 @@ function dimensoesGeo(){
482 489 $sqlreg = " WHERE tabela{$regiao["codigo_tipo_regiao"]}.".$rs["sql"];
483 490 }
484 491 $xml1 .= "
485   - <view alias='view_codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."' >
486   - <SQL dialect='generic' >".$dadosSelect["select"].$sqlreg."</SQL>
487   - </view>
  492 + <view alias='view_codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."' >
  493 + <SQL dialect='generic' >".$dadosSelect["select"].$sqlreg."</SQL>
  494 + </view>
488 495 ";
489 496 $xml2 .= "
490   - <view alias='view_codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."_GeoCod' >
491   - <SQL dialect='generic' >".$dadosSelect["select"].$sqlreg."</SQL>
492   - </view>
  497 + <view alias='view_codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."_GeoCod' >
  498 + <SQL dialect='generic' >".$dadosSelect["select"].$sqlreg."</SQL>
  499 + </view>
493 500 ";
494 501 $niveisXml1 = array_reverse($niveisXml1);
495 502 $niveisXml2 = array_reverse($niveisXml2);
... ... @@ -553,7 +560,7 @@ function dimensoesOutras(){
553 560 return $xml3;
554 561 }
555 562 function dimensoesTabelas(){
556   - global $nivelDaDimensao,$dimRegioes, $filhosDaRegiao, $m, $VirtualCubeDimension, $VirtualCubeMeasure, $chavesRegiao, $medidas, $codigo_tipo_regiao, $VirtualCubeDimensionDaRegiao, $VirtualCubeMeasureDaRegiao;
  563 + global $VirtualCubeDimensionDaMedida, $CubosPorMedida, $nivelDaDimensao, $dimRegioes, $filhosDaRegiao, $m, $VirtualCubeDimension, $VirtualCubeMeasure, $chavesRegiao, $medidas, $codigo_tipo_regiao, $VirtualCubeDimensionDaRegiao, $VirtualCubeMeasureDaRegiao;
557 564  
558 565 $xml = "";
559 566 $tbs = array();
... ... @@ -567,6 +574,8 @@ function dimensoesTabelas(){
567 574 else{
568 575 array_push($tbs[$k],$medida);
569 576 }
  577 + $CubosPorMedida[$medida["nome_variavel"]] = array();
  578 + $VirtualCubeDimensionDaMedida[$medida["nome_variavel"]] = array();
570 579 }
571 580 }
572 581 //monta os cubos para cada esquema.tabela diferente
... ... @@ -581,13 +590,24 @@ function dimensoesTabelas(){
581 590 ";
582 591  
583 592 array_push(
584   - $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],
585   - "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}' />"
586   - );
  593 + $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],
  594 + "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}' />"
  595 + );
587 596 array_push(
588   - $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],
589   - "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}_geocod' />"
590   - );
  597 + $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],
  598 + "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}_geocod' />"
  599 + );
  600 +
  601 + array_push(
  602 + $VirtualCubeDimensionDaMedida[$c["nome_variavel"]],
  603 + "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}' />"
  604 + );
  605 + array_push(
  606 + $VirtualCubeDimensionDaMedida[$c["nome_variavel"]],
  607 + "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}_geocod' />"
  608 + );
  609 +
  610 +
591 611 //verifica as dimensoes do tipo tempo
592 612 $dimEnsoes = array();
593 613  
... ... @@ -629,6 +649,7 @@ function dimensoesTabelas(){
629 649 //$dimEnsoes[] = '<DimensionUsage foreignKey="coduf" name="codigo_tipo_regiao_2" source="codigo_tipo_regiao_2"/>';
630 650  
631 651 $xml .= "<Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>";
  652 +
632 653 $incluirChaves = array("tabelamedida{$c["id_medida_variavel"]}.*");
633 654 //colunas quando o nome da coluna com os valores for vazia
634 655 foreach($tb as $mdd){
... ... @@ -651,7 +672,7 @@ function dimensoesTabelas(){
651 672 }
652 673 $r = $chavesRegiao[$c["codigo_tipo_regiao"]];
653 674 $sql = "
654   - select ".implode(",",$incluirChaves).", tabelamedida{$c["id_medida_variavel"]}.{$c["colunaidgeo"]}::text as codigoreg
  675 + select ".implode(",",$incluirChaves).", tabelamedida{$c["id_medida_variavel"]}.{$c["colunaidgeo"]}::text as codigoreg
655 676 ";
656 677 if(count($dimRegioes[$c["codigo_tipo_regiao"]]["colunas"]) > 0){
657 678 $sql .= ",".implode(",",$dimRegioes[$c["codigo_tipo_regiao"]]["colunas"]);
... ... @@ -659,38 +680,38 @@ function dimensoesTabelas(){
659 680 }
660 681  
661 682 $sql .= "
662   - from {$c["esquemadb"]}.{$c["tabela"]} as tabelamedida{$c["id_medida_variavel"]}
663   - JOIN {$r["esquemadb"]}.{$r["tabela"]} as tabela{$r["codigo_tipo_regiao"]}
664   - ON tabela{$r["codigo_tipo_regiao"]}.{$r["identificador"]}::text = tabelamedida{$c["id_medida_variavel"]}.{$c["colunaidgeo"]}::text
665   - ";
  683 + from {$c["esquemadb"]}.{$c["tabela"]} as tabelamedida{$c["id_medida_variavel"]}
  684 + JOIN {$r["esquemadb"]}.{$r["tabela"]} as tabela{$r["codigo_tipo_regiao"]}
  685 + ON tabela{$r["codigo_tipo_regiao"]}.{$r["identificador"]}::text = tabelamedida{$c["id_medida_variavel"]}.{$c["colunaidgeo"]}::text
  686 + ";
666 687 $sql .= $dimRegioes[$c["codigo_tipo_regiao"]]["juncoes"];
667 688 $f = array();
668 689 foreach($tb as $mdd){
669 690 if($mdd["filtro"] != ""){
670 691 $f[] = str_replace('"',"'",$mdd["filtro"]);
671 692 }
672   - }
  693 + }
673 694 if(count($f) > 0){
674 695 $sql .= " WHERE ".implode(" OR ",$f);
675 696 }
676 697  
677 698 $xml .= "
678   - <view alias='view_{$c["esquemadb"]}{$c["tabela"]}' ><SQL dialect='generic' >$sql</SQL></view>
  699 + <view alias='view_{$c["esquemadb"]}{$c["tabela"]}' ><SQL dialect='generic' >$sql</SQL></view>
679 700 ";
680 701 //dimensoes vinculadas
681 702 $temp = $dimRegioes[$c["codigo_tipo_regiao"]]["codRegioes"];
682 703 $temp[] = $c["codigo_tipo_regiao"];
683 704 foreach($temp as $cod){
684 705 $xml .= "
685   - <DimensionUsage foreignKey='codigo{$cod}' name='codigo_tipo_regiao_{$cod}' source='codigo_tipo_regiao_{$cod}'/>
686   - <DimensionUsage foreignKey='codigo{$cod}' name='codigo_tipo_regiao_{$cod}_geocod' source='codigo_tipo_regiao_{$cod}_geocod'/>
  706 + <DimensionUsage foreignKey='codigo{$cod}' name='codigo_tipo_regiao_{$cod}' source='codigo_tipo_regiao_{$cod}'/>
  707 + <DimensionUsage foreignKey='codigo{$cod}' name='codigo_tipo_regiao_{$cod}_geocod' source='codigo_tipo_regiao_{$cod}_geocod'/>
687 708 ";
688 709 }
689 710 //inclui as dimensoes filhas
690 711 foreach($filhosDaRegiao[$c["codigo_tipo_regiao"]] as $fr){
691 712 $xml .= "
692   - <DimensionUsage foreignKey='codigoreg' name='codigo_tipo_regiao_".$fr."' source='codigo_tipo_regiao_".$fr."'/>
693   - <DimensionUsage foreignKey='codigoreg' name='codigo_tipo_regiao_".$fr."_geocod' source='codigo_tipo_regiao_".$fr."_geocod'/>
  713 + <DimensionUsage foreignKey='codigoreg' name='codigo_tipo_regiao_".$fr."' source='codigo_tipo_regiao_".$fr."'/>
  714 + <DimensionUsage foreignKey='codigoreg' name='codigo_tipo_regiao_".$fr."_geocod' source='codigo_tipo_regiao_".$fr."_geocod'/>
694 715 ";
695 716 }
696 717  
... ... @@ -719,6 +740,10 @@ function dimensoesTabelas(){
719 740 ";
720 741 $VirtualCubeMeasure[] = $u;
721 742 array_push($VirtualCubeMeasureDaRegiao[$c["codigo_tipo_regiao"]],$u);
  743 + //verifica em qual variavel entra
  744 + //<VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_12]'/>
  745 + $u = "<VirtualCubeMeasure cubeName='Tabela: {$c["esquemadb"]}{$c["tabela"]}' name='[Measures].[id_medida_variavel_".$medida["id_medida_variavel"]."]'/>";
  746 + array_push($CubosPorMedida[$c["nome_variavel"]],$u);
722 747 }
723 748 $xml .= "
724 749 </Cube>
... ... @@ -755,4 +780,19 @@ function cuboRegioes(){
755 780 }
756 781 return $xml;
757 782 }
  783 +
  784 +function cuboVariaveis(){
  785 + global $CubosPorMedida, $VirtualCubeDimensionDaMedida;
  786 + //var_dump($VirtualCubeDimensionDaMedida);exit;
  787 + $xml = "";
  788 + $chaves = array_keys($CubosPorMedida);
  789 + foreach ($chaves as $c){
  790 + $xml .= '<VirtualCube name="'.converte($c).'" >';
  791 + $xml .= '<VirtualCubeDimension name="Tempo" />';
  792 + $xml .= implode(" ",$VirtualCubeDimensionDaMedida[$c]);
  793 + $xml .= implode(" ",$CubosPorMedida[$c]);
  794 + $xml .= '</VirtualCube>';
  795 + }
  796 + return $xml;
  797 +}
758 798 ?>
... ...
ferramentas/saiku/testemondrian.xml
1 1 <Schema name='i3Geo Metaestat'>
2 2 <Dimension name='Anual' type='TimeDimension' caption='Tempo: Anual'>
3   - <Hierarchy hasAll='true' primaryKey='nu_ano'>
4   - <view alias='tempo_ano'>
5   - <SQL dialect='generic'>select nu_ano from
6   - i3geo_metaestat.dim_tempo group
7   - by nu_ano order by nu_ano
8   - </SQL>
9   - </view>
10   - <Level name='Ano' column='nu_ano' type='Numeric' uniqueMembers='true'
11   - levelType='TimeYears' />
12   - </Hierarchy>
  3 + <Hierarchy hasAll='true' primaryKey='nu_ano'>
  4 + <view alias='tempo_ano' ><SQL dialect='generic' >select nu_ano from i3geo_metaestat.dim_tempo group by nu_ano order by nu_ano</SQL></view>
  5 + <Level name='Ano' column='nu_ano' type='Numeric' uniqueMembers='true' levelType='TimeYears'/>
  6 + </Hierarchy>
13 7 </Dimension>
14 8 <Dimension name='Mensal' type='TimeDimension' caption='Tempo: Mensal'>
15   - <Hierarchy hasAll='true' primaryKey='nu_anomes'>
16   - <view alias='tempo_ano'>
17   - <SQL dialect='generic'>select
18   - nu_ano::text,nu_mes::text,ds_mes_abreviado as
19   - mes,COALESCE
20   - (nu_ano::text||'-'||nu_mes::text,nu_ano::text) as
21   - nu_anomes from
22   - i3geo_metaestat.dim_tempo group by
23   - nu_ano,nu_mes,mes,nu_anomes
24   - order by nu_ano,nu_mes
25   - </SQL>
26   - </view>
27   - <Level name='Ano' column='nu_ano' type='Numeric' uniqueMembers='true'
28   - levelType='TimeYears' />
29   - <Level nameColumn='mes' name='Mes' column='nu_mes' type='Numeric'
30   - uniqueMembers='false' levelType='TimeMonths' />
31   - </Hierarchy>
  9 + <Hierarchy hasAll='true' primaryKey='nu_anomes'>
  10 + <view alias='tempo_ano' ><SQL dialect='generic' >select nu_ano::text,nu_mes::text,ds_mes_abreviado as mes,COALESCE (nu_ano::text||'-'||nu_mes::text,nu_ano::text) as nu_anomes from i3geo_metaestat.dim_tempo group by nu_ano,nu_mes,mes,nu_anomes order by nu_ano,nu_mes</SQL></view>
  11 + <Level name='Ano' column='nu_ano' type='Numeric' uniqueMembers='true' levelType='TimeYears'/>
  12 + <Level nameColumn='mes' name='Mes' column='nu_mes' type='Numeric' uniqueMembers='false' levelType='TimeMonths'/>
  13 + </Hierarchy>
32 14 </Dimension>
33 15 <Dimension name='Tempo' type='TimeDimension' caption='Tempo'>
34   - <Hierarchy hasAll='true' primaryKey='nu_anomes'>
35   - <view alias='tempo'>
36   - <SQL dialect='generic'>select
37   - nu_ano::text,nu_mes::text,ds_mes_abreviado as
38   - mes,COALESCE
39   - (nu_ano::text||'-'||nu_mes::text,nu_ano::text) as
40   - nu_anomes from
41   - i3geo_metaestat.dim_tempo group by
42   - nu_ano,nu_mes,mes,nu_anomes
43   - order by nu_ano,nu_mes
44   - </SQL>
  16 + <Hierarchy hasAll='true' primaryKey='nu_anomes'>
  17 + <view alias='tempo' ><SQL dialect='generic' >select nu_ano::text,nu_mes::text,ds_mes_abreviado as mes,COALESCE (nu_ano::text||'-'||nu_mes::text,nu_ano::text) as nu_anomes from i3geo_metaestat.dim_tempo group by nu_ano,nu_mes,mes,nu_anomes order by nu_ano,nu_mes</SQL></view>
  18 + <Level name='Ano' column='nu_ano' type='String' uniqueMembers='true' levelType='TimeYears'/>
  19 + <Level nameColumn='mes' name='Mes' column='nu_mes' type='String' uniqueMembers='false' levelType='TimeMonths'/>
  20 + </Hierarchy>
  21 + </Dimension>
  22 +
  23 + <Dimension name='codigo_tipo_regiao_1' caption='Onde:Bairro (IBGE)'>
  24 + <Hierarchy hasAll='true' primaryKey='codigo1'>
  25 +
  26 + <view alias='view_codigo_tipo_regiao_1' >
  27 + <SQL dialect='generic' >SELECT tabela1.co_bairro::text as codigo, tabela1.co_bairro::text AS codigo1,tabela1.no_bairro::text AS nome1,tabela2.co_municipio::text AS codigo2,tabela2.no_cidade::text AS nome2,tabela3.co_uf::text AS codigo3,tabela3.no_uf::text AS nome3 FROM i3geo_metaestat.bairros as tabela1
  28 + JOIN i3geo_metaestat.municipios as tabela2 ON
  29 + tabela2.co_municipio::text = tabela1.co_municipio::text
  30 + JOIN i3geo_metaestat.uf as tabela3 ON
  31 + tabela3.co_uf::text = tabela2.co_uf::text
  32 + </SQL>
45 33 </view>
46   - <Level name='Ano' column='nu_ano' type='String' uniqueMembers='true'
47   - levelType='TimeYears' />
48   - <Level nameColumn='mes' name='Mes' column='nu_mes' type='String'
49   - uniqueMembers='false' levelType='TimeMonths' />
  34 +
  35 + <Level name='Estado' column='codigo3' nameColumn='nome3'
  36 + uniqueMembers='false' />
  37 +
  38 + <Level name='Munic&amp;iacute;pio' column='codigo2' nameColumn='nome2'
  39 + uniqueMembers='false' />
  40 +
  41 + <Level name='Bairro (IBGE)' column='codigo1' nameColumn='nome1'
  42 + uniqueMembers='false' />
  43 +
50 44 </Hierarchy>
51   - </Dimension>
52   -
53   - <Dimension name='codigo_tipo_regiao_1' caption='Onde:Bairro (IBGE)'>
54   - <Hierarchy hasAll='true' primaryKey='co_bairro'>
55   -
56   - <view alias='view_codigo_tipo_regiao_1'>
57   - <SQL dialect='generic'>SELECT regiao.co_bairro as codigo
58   - ,regiao.no_bairro
59   - AS nome,j0.no_cidade AS
60   - j0no_cidade,j0.co_municipio AS
61   - j0co_municipio,j1.no_uf AS
62   - j1no_uf,j1.co_uf AS
63   - j1co_uf,regiao.co_bairro as
64   - co_bairro,regiao.no_bairro as
65   - no_bairro,regiao.no_distr as
66   - no_distr,regiao.no_municip as
67   - no_municip FROM
68   - i3geo_metaestat.bairros AS regiao INNER JOIN
69   - i3geo_metaestat.municipios
70   - AS j0 ON j0.co_municipio::text =
71   - regiao.co_municipio::text
72   - INNER JOIN i3geo_metaestat.uf
73   - AS j1 ON
74   - j1.co_uf::text = j0.co_uf::text
75   - </SQL>
  45 + </Dimension>
  46 +
  47 + <Dimension name='codigo_tipo_regiao_1_geocod' caption='GeoCod:Bairro (IBGE)'>
  48 + <Hierarchy hasAll='true' primaryKey='codigo1'>
  49 +
  50 + <view alias='view_codigo_tipo_regiao_1_GeoCod' >
  51 + <SQL dialect='generic' >SELECT tabela1.co_bairro::text as codigo, tabela1.co_bairro::text AS codigo1,tabela1.no_bairro::text AS nome1,tabela2.co_municipio::text AS codigo2,tabela2.no_cidade::text AS nome2,tabela3.co_uf::text AS codigo3,tabela3.no_uf::text AS nome3 FROM i3geo_metaestat.bairros as tabela1
  52 + JOIN i3geo_metaestat.municipios as tabela2 ON
  53 + tabela2.co_municipio::text = tabela1.co_municipio::text
  54 + JOIN i3geo_metaestat.uf as tabela3 ON
  55 + tabela3.co_uf::text = tabela2.co_uf::text
  56 + </SQL>
76 57 </view>
77   -
78   - <Level name='Estado' column='j1co_uf' nameColumn='j1no_uf'
  58 +
  59 + <Level name='Estado - GeoCod #3' column='codigo3' nameColumn='codigo3'
  60 + uniqueMembers='false' />
  61 +
  62 + <Level name='Munic&amp;iacute;pio - GeoCod #2' column='codigo2' nameColumn='codigo2'
  63 + uniqueMembers='false' />
  64 +
  65 + <Level name='Bairro (IBGE) - GeoCod #1' column='codigo1' nameColumn='codigo1'
79 66 uniqueMembers='false' />
80   -
81   - <Level name='Munic&amp;iacute;pio' column='j0co_municipio'
82   - nameColumn='j0no_cidade' uniqueMembers='false' />
83   -
84   - <Level name='Bairro (IBGE)' column='codigo' nameColumn='nome'
85   - uniqueMembers='true'>
86   - </Level>
87   -
  67 +
88 68 </Hierarchy>
89   - </Dimension>
90   -
91   - <Dimension name='codigo_tipo_regiao_47'
92   - caption='Onde:Colegiado de gest&amp;atilde;o em sa&amp;uacute;de'>
93   - <Hierarchy hasAll='true' primaryKey='co_colegiado'>
94   -
95   - <view alias='view_codigo_tipo_regiao_47'>
96   - <SQL dialect='generic'>SELECT regiao.co_colegiado as codigo
97   - ,regiao.no_colegiado AS nome FROM i3geo_metaestat.colegiado_gestao
98   - AS regiao
99   - </SQL>
  69 + </Dimension>
  70 +
  71 + <Dimension name='codigo_tipo_regiao_47' caption='Onde:Colegiado de gest&amp;atilde;o em sa&amp;uacute;de'>
  72 + <Hierarchy hasAll='true' primaryKey='codigo47'>
  73 +
  74 + <view alias='view_codigo_tipo_regiao_47' >
  75 + <SQL dialect='generic' >SELECT tabela47.co_colegiado::text as codigo, tabela47.co_colegiado::text AS codigo47,tabela47.no_colegiado::text AS nome47 FROM i3geo_metaestat.colegiado_gestao as tabela47
  76 +</SQL>
100 77 </view>
101   -
102   - <Level name='Colegiado de gest&amp;atilde;o em sa&amp;uacute;de'
103   - column='codigo' nameColumn='nome' uniqueMembers='true'>
104   - </Level>
105   -
  78 +
  79 + <Level name='Colegiado de gest&amp;atilde;o em sa&amp;uacute;de' column='codigo47' nameColumn='nome47'
  80 + uniqueMembers='false' />
  81 +
106 82 </Hierarchy>
107   - </Dimension>
108   -
109   - <Dimension name='codigo_tipo_regiao_3' caption='Onde:Estado'>
110   - <Hierarchy hasAll='true' primaryKey='codigo'>
111   - <view alias='view_codigo_tipo_regiao_3'>
112   - <SQL dialect='generic'>
113   - SELECT
114   - co_uf::text as codigo,
115   - co_uf::text as co_uf,
116   - no_uf::text
117   - FROM
118   - i3geo_metaestat.uf
119   -
120   - </SQL>
  83 + </Dimension>
  84 +
  85 + <Dimension name='codigo_tipo_regiao_47_geocod' caption='GeoCod:Colegiado de gest&amp;atilde;o em sa&amp;uacute;de'>
  86 + <Hierarchy hasAll='true' primaryKey='codigo47'>
  87 +
  88 + <view alias='view_codigo_tipo_regiao_47_GeoCod' >
  89 + <SQL dialect='generic' >SELECT tabela47.co_colegiado::text as codigo, tabela47.co_colegiado::text AS codigo47,tabela47.no_colegiado::text AS nome47 FROM i3geo_metaestat.colegiado_gestao as tabela47
  90 +</SQL>
121 91 </view>
122   - <Level name='Estado' column='co_uf' nameColumn='no_uf'
123   - uniqueMembers='true' />
  92 +
  93 + <Level name='Colegiado de gest&amp;atilde;o em sa&amp;uacute;de - GeoCod #47' column='codigo47' nameColumn='codigo47'
  94 + uniqueMembers='false' />
  95 +
124 96 </Hierarchy>
125   -
126   - </Dimension>
127   - ///////////////////////////////////////////////////////////////////////////
128   - <Dimension name='codigo_tipo_regiao_2' caption='Onde:Munic&amp;iacute;pio'>
129   - <Hierarchy hasAll='true' primaryKey='codigo'>
130   - <view alias='view_codigo_tipo_regiao_2'>
131   - <SQL dialect='generic'>
132   - SELECT a0.co_municipio::text as codigo ,a0.co_municipio::text AS co_municipio ,
133   - a0.no_cidade::text AS no_cidade ,b0.co_uf::text AS co_uf ,b0.no_uf::text AS no_uf
134   - FROM i3geo_metaestat.municipios as a0 JOIN i3geo_metaestat.uf as b0 ON
135   -a0.co_uf::text = b0.co_uf::text
136   -UNION
137   -SELECT a1.co_uf::text as codigo ,'','',a1.co_uf::text AS co_uf ,a1.no_uf::text AS no_uf FROM i3geo_metaestat.uf as a1
138   - </SQL>
  97 + </Dimension>
  98 +
  99 + <Dimension name='codigo_tipo_regiao_3' caption='Onde:Estado'>
  100 + <Hierarchy hasAll='true' primaryKey='codigo3'>
  101 +
  102 + <view alias='view_codigo_tipo_regiao_3' >
  103 + <SQL dialect='generic' >SELECT tabela3.co_uf::text as codigo, tabela3.co_uf::text AS codigo3,tabela3.no_uf::text AS nome3 FROM i3geo_metaestat.uf as tabela3
  104 +</SQL>
139 105 </view>
140   - <Level name='Estado' column='no_uf' nameColumn='no_uf'
141   - uniqueMembers='true' />
142   - <Level name='Munic&amp;iacute;pio' column='no_cidade'
143   - nameColumn='no_cidade' uniqueMembers='true' />
  106 +
  107 + <Level name='Estado' column='codigo3' nameColumn='nome3'
  108 + uniqueMembers='false' />
  109 +
144 110 </Hierarchy>
145   - </Dimension>
146   -
147   - <Dimension name='codigo_tipo_regiao_1_geocod' caption='GeoCod:Bairro (IBGE)'>
148   - <Hierarchy hasAll='true' primaryKey='co_bairro'>
149   -
150   - <view alias='view_codigo_tipo_regiao_1_GeoCod'>
151   - <SQL dialect='generic'>SELECT regiao.co_bairro as codigo
152   - ,regiao.no_bairro
153   - AS nome,j0.no_cidade AS
154   - j0no_cidade,j0.co_municipio AS
155   - j0co_municipio,j1.no_uf AS
156   - j1no_uf,j1.co_uf AS
157   - j1co_uf,regiao.co_bairro as
158   - co_bairro,regiao.no_bairro as
159   - no_bairro,regiao.no_distr as
160   - no_distr,regiao.no_municip as
161   - no_municip FROM
162   - i3geo_metaestat.bairros AS regiao INNER JOIN
163   - i3geo_metaestat.municipios
164   - AS j0 ON j0.co_municipio::text =
165   - regiao.co_municipio::text
166   - INNER JOIN i3geo_metaestat.uf
167   - AS j1 ON
168   - j1.co_uf::text = j0.co_uf::text
169   - </SQL>
  111 + </Dimension>
  112 +
  113 + <Dimension name='codigo_tipo_regiao_3_geocod' caption='GeoCod:Estado'>
  114 + <Hierarchy hasAll='true' primaryKey='codigo3'>
  115 +
  116 + <view alias='view_codigo_tipo_regiao_3_GeoCod' >
  117 + <SQL dialect='generic' >SELECT tabela3.co_uf::text as codigo, tabela3.co_uf::text AS codigo3,tabela3.no_uf::text AS nome3 FROM i3geo_metaestat.uf as tabela3
  118 +</SQL>
170 119 </view>
171   -
172   - <Level name='Munic&amp;iacute;pio - GeoCod #2' column='j0co_municipio'
173   - nameColumn='j0co_municipio' uniqueMembers='false' />
174   -
175   - <Level name='Estado - GeoCod #3' column='j1co_uf' nameColumn='j1co_uf'
  120 +
  121 + <Level name='Estado - GeoCod #3' column='codigo3' nameColumn='codigo3'
176 122 uniqueMembers='false' />
177   -
178   - <Level name='Bairro (IBGE) - GeoCod #1' column='codigo'
179   - nameColumn='codigo' uniqueMembers='true' />
180   -
181   - </Hierarchy>
182   - </Dimension>
183   -
184   - <Dimension name='codigo_tipo_regiao_47_geocod'
185   - caption='GeoCod:Colegiado de gest&amp;atilde;o em sa&amp;uacute;de'>
186   - <Hierarchy hasAll='true' primaryKey='co_colegiado'>
187   -
188   - <view alias='view_codigo_tipo_regiao_47_GeoCod'>
189   - <SQL dialect='generic'>SELECT regiao.co_colegiado as codigo
190   - ,regiao.no_colegiado AS nome FROM i3geo_metaestat.colegiado_gestao
191   - AS regiao
192   - </SQL>
193   - </view>
194   -
195   - <Level
196   - name='Colegiado de gest&amp;atilde;o em sa&amp;uacute;de - GeoCod #47'
197   - column='codigo' nameColumn='codigo' uniqueMembers='true' />
198   -
  123 +
199 124 </Hierarchy>
200   - </Dimension>
201   -
202   - <Dimension name='codigo_tipo_regiao_3_geocod' caption='GeoCod:Estado'>
203   - <Hierarchy hasAll='true' primaryKey='co_uf'>
204   -
205   - <view alias='view_codigo_tipo_regiao_3_GeoCod'>
206   - <SQL dialect='generic'>SELECT regiao.co_uf as codigo
207   - ,regiao.no_uf AS
208   - nome,regiao.co_uf as co_uf,regiao.sg_uf as
209   - sg_uf,regiao.no_uf as
210   - no_uf,regiao.no_regiao as no_regiao FROM
211   - i3geo_metaestat.uf AS
212   - regiao
213   - </SQL>
  125 + </Dimension>
  126 +
  127 + <Dimension name='codigo_tipo_regiao_2' caption='Onde:Munic&amp;iacute;pio'>
  128 + <Hierarchy hasAll='true' primaryKey='codigo2'>
  129 +
  130 + <view alias='view_codigo_tipo_regiao_2' >
  131 + <SQL dialect='generic' >SELECT tabela2.co_municipio::text as codigo, tabela2.co_municipio::text AS codigo2,tabela2.no_cidade::text AS nome2,tabela3.co_uf::text AS codigo3,tabela3.no_uf::text AS nome3 FROM i3geo_metaestat.municipios as tabela2
  132 + JOIN i3geo_metaestat.uf as tabela3 ON
  133 + tabela3.co_uf::text = tabela2.co_uf::text
  134 + </SQL>
214 135 </view>
215   -
216   - <Level name='Estado - GeoCod #3' column='codigo' nameColumn='codigo'
217   - uniqueMembers='true' />
218   -
  136 +
  137 + <Level name='Estado' column='codigo3' nameColumn='nome3'
  138 + uniqueMembers='false' />
  139 +
  140 + <Level name='Munic&amp;iacute;pio' column='codigo2' nameColumn='nome2'
  141 + uniqueMembers='false' />
  142 +
219 143 </Hierarchy>
220   - </Dimension>
221   -
222   - <Dimension name='codigo_tipo_regiao_2_geocod' caption='GeoCod:Munic&amp;iacute;pio'>
223   - <Hierarchy hasAll='true' primaryKey='co_municipio'>
224   -
225   - <view alias='view_codigo_tipo_regiao_2_GeoCod'>
226   - <SQL dialect='generic'>SELECT regiao.co_municipio as codigo
227   - ,regiao.no_cidade AS nome,j0.no_uf AS j0no_uf,j0.co_uf AS
228   - j0co_uf,regiao.co_municipio as co_municipio,regiao.no_cidade as
229   - no_cidade,regiao.co_uf as co_uf,regiao.sg_uf as
230   - sg_uf,regiao.area_territorial as
231   - area_territorial,regiao.nu_ano_instalacao as nu_ano_instalacao FROM
232   - i3geo_metaestat.municipios AS regiao INNER JOIN i3geo_metaestat.uf
233   - AS j0 ON j0.co_uf::text = regiao.co_uf::text
234   - </SQL>
  144 + </Dimension>
  145 +
  146 + <Dimension name='codigo_tipo_regiao_2_geocod' caption='GeoCod:Munic&amp;iacute;pio'>
  147 + <Hierarchy hasAll='true' primaryKey='codigo2'>
  148 +
  149 + <view alias='view_codigo_tipo_regiao_2_GeoCod' >
  150 + <SQL dialect='generic' >SELECT tabela2.co_municipio::text as codigo, tabela2.co_municipio::text AS codigo2,tabela2.no_cidade::text AS nome2,tabela3.co_uf::text AS codigo3,tabela3.no_uf::text AS nome3 FROM i3geo_metaestat.municipios as tabela2
  151 + JOIN i3geo_metaestat.uf as tabela3 ON
  152 + tabela3.co_uf::text = tabela2.co_uf::text
  153 + </SQL>
235 154 </view>
236   -
237   - <Level name='Estado - GeoCod #3' column='j0co_uf' nameColumn='j0co_uf'
  155 +
  156 + <Level name='Estado - GeoCod #3' column='codigo3' nameColumn='codigo3'
  157 + uniqueMembers='false' />
  158 +
  159 + <Level name='Munic&amp;iacute;pio - GeoCod #2' column='codigo2' nameColumn='codigo2'
238 160 uniqueMembers='false' />
239   -
240   - <Level name='Munic&amp;iacute;pio - GeoCod #2' column='codigo'
241   - nameColumn='codigo' uniqueMembers='true' />
242   -
243   - </Hierarchy>
244   - </Dimension>
245   -
246   - <Dimension name='public_sfb_teste_descncm' caption='NCM'>
247   - <Hierarchy hasAll='true' primaryKey='codigo'>
248   - <view alias='public_sfb_teste_descncm'>
249   - <SQL dialect='generic'>SELECT dim.descncm as codigo, dim.descncm
250   - AS nome
251   - FROM public.sfb_teste as dim group by codigo
252   - </SQL>
253   - </view>
254   - <Level name='NCM' column='codigo' nameColumn='nome'
255   - uniqueMembers='true' />
  161 +
256 162 </Hierarchy>
257   - </Dimension>
258   - <Cube cache='false' name='Tabela: idsustb_indicador'>
259   - <view alias='view_idsustb_indicador'>
260   - <SQL dialect='generic'>
261   - select tb_indicador.*,ibge::text as codigodim,uf.co_uf::text as co_uf, ano::text as ano_ from
262   - idsus.tb_indicador
263   - JOIN i3geo_metaestat.municipios as municipio ON ibge::text = co_municipio::text
264   - JOIN i3geo_metaestat.uf as uf ON municipio.co_uf::text = uf.co_uf::text
265   - </SQL>
266   - </view>
267   - <DimensionUsage foreignKey='codigodim' name='codigo_tipo_regiao_2'
268   - source='codigo_tipo_regiao_2' />
269   - <DimensionUsage foreignKey='codigodim'
270   - name='codigo_tipo_regiao_2_geocod' source='codigo_tipo_regiao_2_geocod' />
271   -
272   - <DimensionUsage foreignKey='co_uf'
273   - name='codigo_tipo_regiao_3' source='codigo_tipo_regiao_3' />
274   -
275   - <DimensionUsage foreignKey='ano_' name='Tempo' source='Tempo' />
276   -
277   - <Measure name='id_medida_variavel_12' caption='IDSUS municipal'
278   - column='idsus_mun' aggregator='avg' />
279   -
280   - <Measure name='id_medida_variavel_15'
281   - caption='&amp;Iacute;ndice da aten&amp;ccedil;&amp;atilde;o b&amp;aacute;sica'
282   - column='idatb' aggregator='avg' />
283   -
284   - <Measure name='id_medida_variavel_16'
285   - caption='&amp;Iacute;ndice de m&amp;eacute;dia e alta complexidade'
286   - column='idmac' aggregator='avg' />
287   -
288   - <Measure name='id_medida_variavel_17' caption='&amp;Iacute;ndice de acesso do SUS'
289   - column='id_acesso_sus' aggregator='avg' />
290   -
291   - <Measure name='id_medida_variavel_18'
292   - caption='&amp;Iacute;ndice de acesso da aten&amp;ccedil;&amp;atilde;o b&amp;aacute;sica'
293   - column='atbas_acess' aggregator='avg' />
294   -
295   - <Measure name='id_medida_variavel_19'
296   - caption='&amp;Iacute;ndice de acesso da m&amp;eacute;dia complexidade ambulatorial e hospitalar'
297   - column='acess_ah_medc' aggregator='avg' />
298   -
299   - <Measure name='id_medida_variavel_20'
300   - caption='&amp;Iacute;ndice de acesso da alta complexidade, urg&amp;ecirc;ncia e emerg&amp;ecirc;ncia'
301   - column='acess_ah_altc' aggregator='avg' />
302   -
303   - <Measure name='id_medida_variavel_21' caption='&amp;Iacute;ndice de efetividade do SUS'
304   - column='id_quali_sus' aggregator='avg' />
305   -
306   - <Measure name='id_medida_variavel_22'
307   - caption='&amp;Iacute;ndice de efetividade da aten&amp;ccedil;&amp;atilde;o b&amp;aacute;sica'
308   - column='atbas_quali' aggregator='avg' />
309   -
310   - <Measure name='id_medida_variavel_23'
311   - caption='&amp;Iacute;ndice de efetividade ambiental e hospitalar da m&amp;eacute;dia e alta complexidade'
312   - column='quali_ah_mac' aggregator='avg' />
313   -
314   - </Cube>
315   -
316   - <Cube cache='false' name='Tabela: ibgepopulacao_residente'>
317   - <view alias='view_ibgepopulacao_residente'>
318   - <SQL dialect='generic'>
319   - select a.*,a.co_municipio::text as codigo,uf.co_uf::text as co_uf, ano::text as ano_
320   - from
321   - ibge.populacao_residente as a
322   - JOIN i3geo_metaestat.municipios AS municipio ON municipio.co_municipio::text = a.co_municipio::text
323   - JOIN i3geo_metaestat.uf as uf ON municipio.co_uf::text = uf.co_uf::text
324   - </SQL>
325   - </view>
326   - <DimensionUsage foreignKey='codigo' name='codigo_tipo_regiao_2'
327   - source='codigo_tipo_regiao_2' />
328   - <DimensionUsage foreignKey='codigo'
329   - name='codigo_tipo_regiao_2_geocod' source='codigo_tipo_regiao_2_geocod' />
330   -
331   - <DimensionUsage foreignKey='co_uf'
332   - name='codigo_tipo_regiao_3' source='codigo_tipo_regiao_3' />
333   -
334   - <DimensionUsage foreignKey='ano_' name='Tempo' source='Tempo' />
335   -
336   - <Measure name='id_medida_variavel_25' caption='Popula&amp;ccedil;&amp;atilde;o total'
337   - column='pop_res_tot' aggregator='sum' />
338   -
339   - </Cube>
340   -
341   - <Cube cache='false' name='Tabela: dbacoes_saudetb_farmacia_pop'>
342   - <view alias='view_dbacoes_saudetb_farmacia_pop'>
343   - <SQL dialect='generic'>select *,ano_farm||'-'||mes_farm_pop::text
344   - as
345   - ano_farm_mes_farm_pop_ from dbacoes_saude.tb_farmacia_pop
346   - </SQL>
347   - </view>
348   - <DimensionUsage foreignKey='co_ibge' name='codigo_tipo_regiao_2'
349   - source='codigo_tipo_regiao_2' />
350   -
351   - <DimensionUsage foreignKey='co_ibge'
352   - name='codigo_tipo_regiao_2_geocod' source='codigo_tipo_regiao_2_geocod' />
353   -
354   - <DimensionUsage foreignKey='ano_farm_mes_farm_pop_'
355   - name='Tempo' source='Tempo' />
356   -
357   - <Measure name='id_medida_variavel_40' caption='Farm&amp;aacute;cias populares existentes'
358   - column='nu_farm_funcionando' aggregator='sum' />
359   -
360   - </Cube>
361   -
362   - <Cube cache='false' name='Tabela: publicsfb_teste'>
363   - <view alias='view_publicsfb_teste'>
364   - <SQL dialect='generic'>select *,coduf::text as codigo,ano::text as ano_ from
365   - public.sfb_teste
366   - </SQL>
367   - </view>
368   -
369   - <DimensionUsage foreignKey='codigo'
370   - name='codigo_tipo_regiao_3' source='codigo_tipo_regiao_3' />
371   -
372   - <DimensionUsage foreignKey='codigo'
373   - name='codigo_tipo_regiao_2' source='codigo_tipo_regiao_2' />
374   -
375   -
376   - <DimensionUsage foreignKey='ano_' name='Tempo' source='Tempo' />
377   - <DimensionUsage foreignKey='descncm' name='nome'
378   - source='public_sfb_teste_descncm' />
379   -
380   - <Measure name='id_medida_variavel_42' caption='Kg liq P1'
381   - column='kgliqp1' aggregator='sum' />
382   -
383   - <Measure name='id_medida_variavel_43' caption='Mil d&amp;oacute;lares'
384   - column='us1000' aggregator='sum' />
385   -
386   - </Cube>
387   -
388   - <VirtualCube name="Regi&amp;atilde;o: Estado">
389   -
390   - <VirtualCubeDimension name='codigo_tipo_regiao_3' />
391   -
392   - <VirtualCubeDimension name='codigo_tipo_regiao_3_geocod' />
393   -
394   - <VirtualCubeDimension name='Tempo' />
395   -
396   - <VirtualCubeDimension name='public_sfb_teste_descncm' />
397   -
398   - <VirtualCubeMeasure cubeName='Tabela: publicsfb_teste'
399   - name='[Measures].[id_medida_variavel_42]' />
400   -
401   - <VirtualCubeMeasure cubeName='Tabela: publicsfb_teste'
402   - name='[Measures].[id_medida_variavel_43]' />
403   -
404   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
405   - name='[Measures].[id_medida_variavel_12]' />
406   -
407   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
408   - name='[Measures].[id_medida_variavel_15]' />
409   -
410   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
411   - name='[Measures].[id_medida_variavel_16]' />
412   -
413   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
414   - name='[Measures].[id_medida_variavel_17]' />
415   -
416   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
417   - name='[Measures].[id_medida_variavel_18]' />
418   -
419   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
420   - name='[Measures].[id_medida_variavel_19]' />
421   -
422   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
423   - name='[Measures].[id_medida_variavel_20]' />
424   -
425   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
426   - name='[Measures].[id_medida_variavel_21]' />
427   -
428   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
429   - name='[Measures].[id_medida_variavel_22]' />
430   -
431   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
432   - name='[Measures].[id_medida_variavel_23]' />
433   -
434   - <VirtualCubeMeasure cubeName='Tabela: ibgepopulacao_residente'
435   - name='[Measures].[id_medida_variavel_25]' />
436   -
437   - <VirtualCubeMeasure cubeName='Tabela: dbacoes_saudetb_farmacia_pop'
438   - name='[Measures].[id_medida_variavel_40]' />
439   - </VirtualCube>
440   -
441   - <VirtualCube name="Regi&amp;atilde;o: Munic&amp;iacute;pio">
  163 + </Dimension>
  164 + <Cube cache='false' name='Tabela: idsustb_indicador'>
  165 + <view alias='view_idsustb_indicador' ><SQL dialect='generic' >
  166 + select tabelamedida12.*,ano::text as ano_, tabelamedida12.ibge::text as codigoreg
  167 + ,tabela2.co_municipio::text AS codigo2,tabela2.no_cidade::text AS nome2,tabela3.co_uf::text AS codigo3,tabela3.no_uf::text AS nome3
  168 + from idsus.tb_indicador as tabelamedida12
  169 + JOIN i3geo_metaestat.municipios as tabela2
  170 + ON tabela2.co_municipio::text = tabelamedida12.ibge::text
  171 + JOIN i3geo_metaestat.uf as tabela3 ON
  172 + tabela3.co_uf::text = tabela2.co_uf::text
  173 + </SQL></view>
  174 +
  175 + <DimensionUsage foreignKey='codigo3' name='codigo_tipo_regiao_3' source='codigo_tipo_regiao_3'/>
  176 + <DimensionUsage foreignKey='codigo3' name='codigo_tipo_regiao_3_geocod' source='codigo_tipo_regiao_3_geocod'/>
  177 +
  178 + <DimensionUsage foreignKey='codigo2' name='codigo_tipo_regiao_2' source='codigo_tipo_regiao_2'/>
  179 + <DimensionUsage foreignKey='codigo2' name='codigo_tipo_regiao_2_geocod' source='codigo_tipo_regiao_2_geocod'/>
  180 +
  181 + <DimensionUsage foreignKey='ano_' name='Tempo' source='Tempo'/>
  182 +
  183 + <Measure name='id_medida_variavel_12' caption='1 - IDSUS municipal' column='idsus_mun' aggregator='avg' />
  184 +
  185 + <Measure name='id_medida_variavel_16' caption='2 - &amp;Iacute;ndice de m&amp;eacute;dia e alta complexidade' column='idmac' aggregator='avg' />
  186 +
  187 + <Measure name='id_medida_variavel_15' caption='3 - &amp;Iacute;ndice da aten&amp;ccedil;&amp;atilde;o b&amp;aacute;sica' column='idatb' aggregator='avg' />
  188 +
  189 + <Measure name='id_medida_variavel_20' caption='&amp;Iacute;ndice de acesso da alta complexidade, urg&amp;ecirc;ncia e emerg&amp;ecirc;ncia' column='acess_ah_altc' aggregator='avg' />
  190 +
  191 + <Measure name='id_medida_variavel_18' caption='&amp;Iacute;ndice de acesso da aten&amp;ccedil;&amp;atilde;o b&amp;aacute;sica' column='atbas_acess' aggregator='avg' />
  192 +
  193 + <Measure name='id_medida_variavel_19' caption='&amp;Iacute;ndice de acesso da m&amp;eacute;dia complexidade ambulatorial e hospitalar' column='acess_ah_medc' aggregator='avg' />
  194 +
  195 + <Measure name='id_medida_variavel_17' caption='&amp;Iacute;ndice de acesso do SUS' column='id_acesso_sus' aggregator='avg' />
  196 +
  197 + <Measure name='id_medida_variavel_23' caption='&amp;Iacute;ndice de efetividade ambiental e hospitalar da m&amp;eacute;dia e alta complexidade' column='quali_ah_mac' aggregator='avg' />
  198 +
  199 + <Measure name='id_medida_variavel_22' caption='&amp;Iacute;ndice de efetividade da aten&amp;ccedil;&amp;atilde;o b&amp;aacute;sica' column='atbas_quali' aggregator='avg' />
  200 +
  201 + <Measure name='id_medida_variavel_21' caption='&amp;Iacute;ndice de efetividade do SUS' column='id_quali_sus' aggregator='avg' />
  202 +
  203 + </Cube>
  204 + <Cube cache='false' name='Tabela: dbacoes_saudetb_farmacia_pop'>
  205 + <view alias='view_dbacoes_saudetb_farmacia_pop' ><SQL dialect='generic' >
  206 + select tabelamedida40.*,'1'::numeric as contagem40,ano_farm||'-'||mes_farm_pop::text as ano_farm_mes_farm_pop_, tabelamedida40.co_ibge::text as codigoreg
  207 + ,tabela2.co_municipio::text AS codigo2,tabela2.no_cidade::text AS nome2,tabela3.co_uf::text AS codigo3,tabela3.no_uf::text AS nome3
  208 + from dbacoes_saude.tb_farmacia_pop as tabelamedida40
  209 + JOIN i3geo_metaestat.municipios as tabela2
  210 + ON tabela2.co_municipio::text = tabelamedida40.co_ibge::text
  211 + JOIN i3geo_metaestat.uf as tabela3 ON
  212 + tabela3.co_uf::text = tabela2.co_uf::text
  213 + </SQL></view>
  214 +
  215 + <DimensionUsage foreignKey='codigo3' name='codigo_tipo_regiao_3' source='codigo_tipo_regiao_3'/>
  216 + <DimensionUsage foreignKey='codigo3' name='codigo_tipo_regiao_3_geocod' source='codigo_tipo_regiao_3_geocod'/>
  217 +
  218 + <DimensionUsage foreignKey='codigo2' name='codigo_tipo_regiao_2' source='codigo_tipo_regiao_2'/>
  219 + <DimensionUsage foreignKey='codigo2' name='codigo_tipo_regiao_2_geocod' source='codigo_tipo_regiao_2_geocod'/>
  220 +
  221 + <DimensionUsage foreignKey='ano_farm_mes_farm_pop_' name='Tempo' source='Tempo'/>
  222 +
  223 + <Measure name='id_medida_variavel_40' caption='Farm&amp;aacute;cias populares existentes' column='contagem40' aggregator='sum' />
  224 +
  225 + </Cube>
  226 + <Cube cache='false' name='Tabela: ibgepopulacao_residente'>
  227 + <view alias='view_ibgepopulacao_residente' ><SQL dialect='generic' >
  228 + select tabelamedida25.*,ano::text as ano_, tabelamedida25.munic::text as codigoreg
  229 + ,tabela2.co_municipio::text AS codigo2,tabela2.no_cidade::text AS nome2,tabela3.co_uf::text AS codigo3,tabela3.no_uf::text AS nome3
  230 + from ibge.populacao_residente as tabelamedida25
  231 + JOIN i3geo_metaestat.municipios as tabela2
  232 + ON tabela2.co_municipio::text = tabelamedida25.munic::text
  233 + JOIN i3geo_metaestat.uf as tabela3 ON
  234 + tabela3.co_uf::text = tabela2.co_uf::text
  235 + </SQL></view>
  236 +
  237 + <DimensionUsage foreignKey='codigo3' name='codigo_tipo_regiao_3' source='codigo_tipo_regiao_3'/>
  238 + <DimensionUsage foreignKey='codigo3' name='codigo_tipo_regiao_3_geocod' source='codigo_tipo_regiao_3_geocod'/>
  239 +
  240 + <DimensionUsage foreignKey='codigo2' name='codigo_tipo_regiao_2' source='codigo_tipo_regiao_2'/>
  241 + <DimensionUsage foreignKey='codigo2' name='codigo_tipo_regiao_2_geocod' source='codigo_tipo_regiao_2_geocod'/>
  242 +
  243 + <DimensionUsage foreignKey='ano_' name='Tempo' source='Tempo'/>
  244 +
  245 + <Measure name='id_medida_variavel_25' caption='Popula&amp;ccedil;&amp;atilde;o total' column='pop_res_tot' aggregator='sum' />
  246 +
  247 + </Cube>
  248 + <VirtualCube name="Regi&amp;atilde;o: Munic&amp;iacute;pio" ><VirtualCubeDimension name='codigo_tipo_regiao_2' /> <VirtualCubeDimension name='codigo_tipo_regiao_2_geocod' /> <VirtualCubeDimension name='Tempo' />
  249 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_12]'/>
  250 +
  251 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_16]'/>
  252 +
  253 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_15]'/>
  254 +
  255 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_20]'/>
  256 +
  257 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_18]'/>
  258 +
  259 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_19]'/>
  260 +
  261 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_17]'/>
  262 +
  263 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_23]'/>
  264 +
  265 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_22]'/>
  266 +
  267 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_21]'/>
  268 +
  269 + <VirtualCubeMeasure cubeName='Tabela: dbacoes_saudetb_farmacia_pop' name='[Measures].[id_medida_variavel_40]'/>
  270 +
  271 + <VirtualCubeMeasure cubeName='Tabela: ibgepopulacao_residente' name='[Measures].[id_medida_variavel_25]'/>
  272 + </VirtualCube><VirtualCube name="Todas as medidas" >
442 273 <VirtualCubeDimension name='codigo_tipo_regiao_2' />
  274 +
443 275 <VirtualCubeDimension name='codigo_tipo_regiao_2_geocod' />
444   - <VirtualCubeDimension name='Tempo' />
445   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
446   - name='[Measures].[id_medida_variavel_12]' />
447   -
448   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
449   - name='[Measures].[id_medida_variavel_15]' />
450   -
451   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
452   - name='[Measures].[id_medida_variavel_16]' />
453   -
454   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
455   - name='[Measures].[id_medida_variavel_17]' />
456   -
457   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
458   - name='[Measures].[id_medida_variavel_18]' />
459   -
460   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
461   - name='[Measures].[id_medida_variavel_19]' />
462   -
463   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
464   - name='[Measures].[id_medida_variavel_20]' />
465   -
466   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
467   - name='[Measures].[id_medida_variavel_21]' />
468   -
469   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
470   - name='[Measures].[id_medida_variavel_22]' />
471   -
472   - <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador'
473   - name='[Measures].[id_medida_variavel_23]' />
474   -
475   - <VirtualCubeMeasure cubeName='Tabela: ibgepopulacao_residente'
476   - name='[Measures].[id_medida_variavel_25]' />
477   -
478   - <VirtualCubeMeasure cubeName='Tabela: dbacoes_saudetb_farmacia_pop'
479   - name='[Measures].[id_medida_variavel_40]' />
480   - </VirtualCube>
481   -</Schema>
  276 +
  277 + <VirtualCubeDimension name='Tempo' />
  278 +
  279 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_12]'/>
  280 +
  281 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_16]'/>
  282 +
  283 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_15]'/>
  284 +
  285 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_20]'/>
  286 +
  287 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_18]'/>
  288 +
  289 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_19]'/>
  290 +
  291 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_17]'/>
  292 +
  293 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_23]'/>
  294 +
  295 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_22]'/>
  296 +
  297 + <VirtualCubeMeasure cubeName='Tabela: idsustb_indicador' name='[Measures].[id_medida_variavel_21]'/>
  298 +
  299 + <VirtualCubeMeasure cubeName='Tabela: dbacoes_saudetb_farmacia_pop' name='[Measures].[id_medida_variavel_40]'/>
  300 +
  301 + <VirtualCubeMeasure cubeName='Tabela: ibgepopulacao_residente' name='[Measures].[id_medida_variavel_25]'/>
  302 + </VirtualCube></Schema>
482 303 \ No newline at end of file
... ...