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,9 +7,9 @@
7 //utilize $regiao para obter o xml de uma so regiao 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 //quando o saiku e iniciado de fora do i3geo, e necessario inicializar um mapfile para uso como base dos mapas 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,9 +90,14 @@ $VirtualCubeDimensionDaRegiao = array();
90 $VirtualCubeMeasureDaRegiao = array(); 90 $VirtualCubeMeasureDaRegiao = array();
91 $nivelDaDimensao = array(); 91 $nivelDaDimensao = array();
92 92
  93 +$VirtualCubeDimensionDaMedida = array();
  94 +$CubosPorMedida = array();
  95 +
93 $dimRegioes = dimensoesGeo(); 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 $xmlRegioes = implode(" ",$xmlRegioes); 101 $xmlRegioes = implode(" ",$xmlRegioes);
97 102
98 // 103 //
@@ -116,8 +121,10 @@ $xmlCuboTodas = cuboTodas(); @@ -116,8 +121,10 @@ $xmlCuboTodas = cuboTodas();
116 // 121 //
117 $xmlCuboRegioes = cuboRegioes(); 122 $xmlCuboRegioes = cuboRegioes();
118 123
  124 +$xmlCuboVariaveis = cuboVariaveis();
  125 +
119 $xml = "<Schema name='i3Geo Metaestat'>"; 126 $xml = "<Schema name='i3Geo Metaestat'>";
120 -$xml .= $xmlTempo.$xmlRegioes.$xmlOutrasDim.$xmlDimensoesTabelas.$xmlCuboRegioes.$xmlCuboTodas; 127 +$xml .= $xmlTempo.$xmlRegioes.$xmlOutrasDim.$xmlDimensoesTabelas.$xmlCuboRegioes.$xmlCuboTodas.$xmlCuboVariaveis;
121 $xml .= "</Schema>"; 128 $xml .= "</Schema>";
122 129
123 //xml pronto!!!!! 130 //xml pronto!!!!!
@@ -298,8 +305,8 @@ function pegaSelecaoRegioes(){ @@ -298,8 +305,8 @@ function pegaSelecaoRegioes(){
298 } 305 }
299 } 306 }
300 return array( 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,7 +367,7 @@ function sqlDasRegioes($regiao,$caminho,$chavesRegiao){
360 $nomesColunas[] = " nome".$regiaoJoin["codigo_tipo_regiao"]; 367 $nomesColunas[] = " nome".$regiaoJoin["codigo_tipo_regiao"];
361 368
362 $juncoes .= " JOIN {$regiaoJoin['esquemadb']}.{$regiaoJoin['tabela']} as $tabelaAtual ON 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 $codRegioes[] = $regiaoJoin["codigo_tipo_regiao"]; 372 $codRegioes[] = $regiaoJoin["codigo_tipo_regiao"];
366 } 373 }
@@ -403,12 +410,12 @@ function dimensoesGeo(){ @@ -403,12 +410,12 @@ function dimensoesGeo(){
403 $sqls = array(); 410 $sqls = array();
404 $temp = converte($regiao["nome_tipo_regiao"]); 411 $temp = converte($regiao["nome_tipo_regiao"]);
405 $xml1 = " 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 $xml2 = " 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 //cria uma view juntando as tabelas da hierarquia de regioes 421 //cria uma view juntando as tabelas da hierarquia de regioes
@@ -433,13 +440,13 @@ function dimensoesGeo(){ @@ -433,13 +440,13 @@ function dimensoesGeo(){
433 440
434 $temp = converte($regiao["nome_tipo_regiao"]); 441 $temp = converte($regiao["nome_tipo_regiao"]);
435 $niveisXml1[] = " 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 $niveisXml2[] = " 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 //juncoes 450 //juncoes
444 while($caminho){ 451 while($caminho){
445 $a = array_shift($caminho); 452 $a = array_shift($caminho);
@@ -482,14 +489,14 @@ function dimensoesGeo(){ @@ -482,14 +489,14 @@ function dimensoesGeo(){
482 $sqlreg = " WHERE tabela{$regiao["codigo_tipo_regiao"]}.".$rs["sql"]; 489 $sqlreg = " WHERE tabela{$regiao["codigo_tipo_regiao"]}.".$rs["sql"];
483 } 490 }
484 $xml1 .= " 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 $xml2 .= " 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 $niveisXml1 = array_reverse($niveisXml1); 501 $niveisXml1 = array_reverse($niveisXml1);
495 $niveisXml2 = array_reverse($niveisXml2); 502 $niveisXml2 = array_reverse($niveisXml2);
@@ -553,7 +560,7 @@ function dimensoesOutras(){ @@ -553,7 +560,7 @@ function dimensoesOutras(){
553 return $xml3; 560 return $xml3;
554 } 561 }
555 function dimensoesTabelas(){ 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 $xml = ""; 565 $xml = "";
559 $tbs = array(); 566 $tbs = array();
@@ -567,6 +574,8 @@ function dimensoesTabelas(){ @@ -567,6 +574,8 @@ function dimensoesTabelas(){
567 else{ 574 else{
568 array_push($tbs[$k],$medida); 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 //monta os cubos para cada esquema.tabela diferente 581 //monta os cubos para cada esquema.tabela diferente
@@ -581,13 +590,24 @@ function dimensoesTabelas(){ @@ -581,13 +590,24 @@ function dimensoesTabelas(){
581 "; 590 ";
582 591
583 array_push( 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 array_push( 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 //verifica as dimensoes do tipo tempo 611 //verifica as dimensoes do tipo tempo
592 $dimEnsoes = array(); 612 $dimEnsoes = array();
593 613
@@ -629,6 +649,7 @@ function dimensoesTabelas(){ @@ -629,6 +649,7 @@ function dimensoesTabelas(){
629 //$dimEnsoes[] = '<DimensionUsage foreignKey="coduf" name="codigo_tipo_regiao_2" source="codigo_tipo_regiao_2"/>'; 649 //$dimEnsoes[] = '<DimensionUsage foreignKey="coduf" name="codigo_tipo_regiao_2" source="codigo_tipo_regiao_2"/>';
630 650
631 $xml .= "<Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>"; 651 $xml .= "<Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>";
  652 +
632 $incluirChaves = array("tabelamedida{$c["id_medida_variavel"]}.*"); 653 $incluirChaves = array("tabelamedida{$c["id_medida_variavel"]}.*");
633 //colunas quando o nome da coluna com os valores for vazia 654 //colunas quando o nome da coluna com os valores for vazia
634 foreach($tb as $mdd){ 655 foreach($tb as $mdd){
@@ -651,7 +672,7 @@ function dimensoesTabelas(){ @@ -651,7 +672,7 @@ function dimensoesTabelas(){
651 } 672 }
652 $r = $chavesRegiao[$c["codigo_tipo_regiao"]]; 673 $r = $chavesRegiao[$c["codigo_tipo_regiao"]];
653 $sql = " 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 if(count($dimRegioes[$c["codigo_tipo_regiao"]]["colunas"]) > 0){ 677 if(count($dimRegioes[$c["codigo_tipo_regiao"]]["colunas"]) > 0){
657 $sql .= ",".implode(",",$dimRegioes[$c["codigo_tipo_regiao"]]["colunas"]); 678 $sql .= ",".implode(",",$dimRegioes[$c["codigo_tipo_regiao"]]["colunas"]);
@@ -659,38 +680,38 @@ function dimensoesTabelas(){ @@ -659,38 +680,38 @@ function dimensoesTabelas(){
659 } 680 }
660 681
661 $sql .= " 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 $sql .= $dimRegioes[$c["codigo_tipo_regiao"]]["juncoes"]; 687 $sql .= $dimRegioes[$c["codigo_tipo_regiao"]]["juncoes"];
667 $f = array(); 688 $f = array();
668 foreach($tb as $mdd){ 689 foreach($tb as $mdd){
669 if($mdd["filtro"] != ""){ 690 if($mdd["filtro"] != ""){
670 $f[] = str_replace('"',"'",$mdd["filtro"]); 691 $f[] = str_replace('"',"'",$mdd["filtro"]);
671 } 692 }
672 - } 693 + }
673 if(count($f) > 0){ 694 if(count($f) > 0){
674 $sql .= " WHERE ".implode(" OR ",$f); 695 $sql .= " WHERE ".implode(" OR ",$f);
675 } 696 }
676 697
677 $xml .= " 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 //dimensoes vinculadas 701 //dimensoes vinculadas
681 $temp = $dimRegioes[$c["codigo_tipo_regiao"]]["codRegioes"]; 702 $temp = $dimRegioes[$c["codigo_tipo_regiao"]]["codRegioes"];
682 $temp[] = $c["codigo_tipo_regiao"]; 703 $temp[] = $c["codigo_tipo_regiao"];
683 foreach($temp as $cod){ 704 foreach($temp as $cod){
684 $xml .= " 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 //inclui as dimensoes filhas 710 //inclui as dimensoes filhas
690 foreach($filhosDaRegiao[$c["codigo_tipo_regiao"]] as $fr){ 711 foreach($filhosDaRegiao[$c["codigo_tipo_regiao"]] as $fr){
691 $xml .= " 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,6 +740,10 @@ function dimensoesTabelas(){
719 "; 740 ";
720 $VirtualCubeMeasure[] = $u; 741 $VirtualCubeMeasure[] = $u;
721 array_push($VirtualCubeMeasureDaRegiao[$c["codigo_tipo_regiao"]],$u); 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 $xml .= " 748 $xml .= "
724 </Cube> 749 </Cube>
@@ -755,4 +780,19 @@ function cuboRegioes(){ @@ -755,4 +780,19 @@ function cuboRegioes(){
755 } 780 }
756 return $xml; 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 <Schema name='i3Geo Metaestat'> 1 <Schema name='i3Geo Metaestat'>
2 <Dimension name='Anual' type='TimeDimension' caption='Tempo: Anual'> 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 </Dimension> 7 </Dimension>
14 <Dimension name='Mensal' type='TimeDimension' caption='Tempo: Mensal'> 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 </Dimension> 14 </Dimension>
33 <Dimension name='Tempo' type='TimeDimension' caption='Tempo'> 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 </view> 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 </Hierarchy> 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 </view> 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 uniqueMembers='false' /> 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 </Hierarchy> 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 </view> 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 </Hierarchy> 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 </view> 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 </Hierarchy> 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 </view> 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 </Hierarchy> 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 </view> 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 uniqueMembers='false' /> 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 </Hierarchy> 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 </view> 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 </Hierarchy> 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 </view> 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 uniqueMembers='false' /> 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 </Hierarchy> 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 <VirtualCubeDimension name='codigo_tipo_regiao_2' /> 273 <VirtualCubeDimension name='codigo_tipo_regiao_2' />
  274 +
443 <VirtualCubeDimension name='codigo_tipo_regiao_2_geocod' /> 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 \ No newline at end of file 303 \ No newline at end of file