import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';

class DbSqliteLoad{
 Future intialDB()async{
    final path = await getDatabasesPath();
    final local = join(path,'rkmab.db');
    
   var db = await openDatabase(
      local,
      version: 1,
      onCreate: (db,newVersion){
        db.execute('CREATE TABLE IF NOT EXISTS ATENDIMENTOS_DOMICILIARES (ID_ATENDIMENTO_DOMICILIAR INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, DATA TEXT, LOCAL_ATENDIMENTO INTEGER, TIPO_ATENDIMENTO INTEGER, MODALIDADE INTEGER, TURNO INTEGER, CIAP INTEGER, CID TEXT, CONDUTA INTEGER, SINCRONIZADO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_DOM_COMPL (ID_ATENDIMENTO_DOMICILIAR INTEGER, COND_AVAL_ATEND_DOM INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_DOM_PROC (ID_ATENDIMENTO_DOMICILIAR INTEGER, PROC_ATEND_DOM INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_DOM_SIGTAP (ID_ATENDIMENTO_DOMICILIAR INTEGER, COD_PROC_SIGTAP TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_INDIV_COMPL (ID_ATEND_INDIVIDUAL INTEGER, ID_ATEND_INDIV_TIPO INTEGER, ID_ATEND_COMPLEMENTO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_INDIV_EXAMES (ID_ATEND_INDIVIDUAL INTEGER, COD_PROC_SIGTAP TEXT, AVALIADO INTEGER, SOLICITADO INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_INDIV_PROC (ID_ATEND_INDIVIDUAL INTEGER, COD_PROC_SIGTAP TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_INDIV_PROF (ID_ATEND_INDIVIDUAL INTEGER, ID_PROFISSIONAL INTEGER, CODIGO_CBO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_INDIVIDUAIS (ID_ATEND_INDIVIDUAL INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, DT_ATENDIMENTO TEXT, TURNO INTEGER, LOCAL_ATENDIMENTO INTEGER, TIPO_ATENDIMENTO INTEGER, PESO TEXT, ALTURA TEXT, PERIM_CEFALICO TEXT, VACINA_DIA INTEGER, ALEITAMENTO_MATERNO INTEGER, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, DUM TEXT, GRAVIDEZ_PLANEJADA INTEGER, IDADE_GESTACIONAL INTEGER, GESTAS_PREVIAS INTEGER, PARTOS INTEGER, MODALIDADE INTEGER, CIAP2_1 INTEGER, CIAP2_2 INTEGER, CID10_1 TEXT, CID10_2 TEXT, RACIONALIDADE_SAUDE INTEGER, FICOU_OBSERVACAO INTEGER, ESCUTA_INICICIAL INTEGER, COMPLEMENTO TEXT, SINCRONIZADO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_ODONTOLOGICOS (ID_ATENDIMENTO_ODONTOLOGICO INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, DATA TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, TURNO INTEGER, NECESSIDADES_ESPECIAIS INTEGER, GESTANTE INTEGER, LOCAL_ATENDIMENTO INTEGER, TIPO_ATENDIMENTO INTEGER, TIPO_CONSULTA INTEGER, SINCRONIZADO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_ODONTO_PROF (ID_ATENDIMENTO_ODONTOLOGICO INTEGER, ID_PROFISSIONAL INTEGER, CODIGO_CBO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_ODONTO_PROC (ID_ATENDIMENTO_ODONTOLOGICO INTEGER, COD_PROC_SIGTAP TEXT, QTDE INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_ODONTO_SIGTAP (ID_ATENDIMENTO_ODONTOLOGICO INTEGER, COD_PROC_SIGTAP TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS ATENDS_ODONTO_COMPL (ID_ATENDIMENTO_ODONTOLOGICO INTEGER, ID_ATEND_ODONTO_TIPO INTEGER, ID_ATEND_COMPLEMENTO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS AVALIACOES_ELEGIBILIDADE (ID_AVALIACAO_ELEGIBILIDADE INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, DATA_ATENDIMENTO TEXT, TURNO INTEGER, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, PROCEDENCIA INTEGER, CID_PRINCIPAL TEXT, CID_SECUNDARIO TEXT, CID_TERCIARIO TEXT, CONCLUSAO INTEGER, CONC_ELEGIVEL INTEGER, CUIDADOR INTEGER, CNS_CUIDADOR TEXT, SINCRONIZADO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS AVAL_ELEG_CONCL_INE (ID_AVALIACAO_ELEGIBILIDADE INTEGER, AVALIACAO INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS AVAL_ELEG_COND_AVAL (ID_AVALIACAO_ELEGIBILIDADE INTEGER, AVALIACAO INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS BAIRROS (ID_BAIRRO INTEGER PRIMARY KEY AUTOINCREMENT, NO_BAIRRO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS CADASTROS_INDIVIDUAIS (ID_CAD_INDIVIDUAL INTEGER PRIMARY KEY AUTOINCREMENT, STATUS_CADASTRO INTEGER, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_AREA_CIDADAO INTEGER, ID_MICROAREA_CIDADAO INTEGER, FORA_AREA INTEGER, RESPONSAVEL_FAMILIAR INTEGER, ID_RESPONSAVEL_FAMILIAR TEXT, NOME_RESPONSAVEL_FAMILIAR TEXT, PARENTESCO INTEGER, ESCOLARIDADE INTEGER, FREQ_ESCOLA_CRECHE INTEGER, SITUACAO_MERCADO INTEGER, CUIDADOR_TRADICIONAL INTEGER, GRUPO_COMUNITARIO INTEGER, PLANO_PRIVADO INTEGER, COMUNIDADE_TRADICIONAL INTEGER, COM_TRADI_QUAL TEXT, ORIENT_SEXUAL INTEGER, TEM_DEFICIENCIA INTEGER, DEF_AUDITIVA INTEGER, DEF_INTELECTUAL INTEGER, DEF_VISUAL INTEGER, DEF_FISICA INTEGER, DEF_OUTRAS INTEGER, SAIDA_CADASTRO INTEGER, DATA_SAIDA_CADASTRO TEXT, CADASTRO_RECUSADO INTEGER, GESTANTE INTEGER, MATERNIDADE_REFERENCIA TEXT, PESO TEXT, FUMANTE INTEGER, USA_ALCOOL INTEGER, USA_DROGAS INTEGER, HIPERTENSAO INTEGER, DIABETES INTEGER, AVC_DERRAME INTEGER, INFARTO INTEGER, HANSENIASE INTEGER, TUBERCULOSE INTEGER, CANCER INTEGER, INTERNACAO INTEGER, MOTIVO TEXT, DOENCA_CARDIACA INTEGER, PROBLEMA_RINS INTEGER, DOENCA_PULMAO INTEGER, SAUDE_MENTAL INTEGER, ACAMADO INTEGER, DOMICILIADO INTEGER, PLANTAS_MED INTEGER, PLANTAS_MED_QUAIS TEXT, PIC INTEGER, OUTRAS_CONDICOES TEXT, TEMPO_SITUACAO_RUA INTEGER, ACOMP_INTITUICAO INTEGER, ACOMP_INTITUICAO_QUAL TEXT, BENEFICIO INTEGER, REF_FAMILIAR INTEGER, VISITA_FAMILIAR INTEGER, PARENTESCO_VISITA TEXT, ALIMENTACAO_DIARIA INTEGER, REST_POPULAR INTEGER, DOACAO_REST INTEGER, DOACAO_RELIGIOSO INTEGER, DOACAO_POPULAR INTEGER, OUTROS_ALIM INTEGER, ACESSO_HIGIENE INTEGER, BANHO INTEGER, SANITARIO INTEGER, HIGIENE_BUCAL INTEGER, OUTROS_HIGIENE INTEGER, FICHA_ALTERACAO INTEGER, ID_RESP_CADASTRO INTEGER, CNES_RESP_CADASTRO TEXT, CBO_RESP_CADASTRO TEXT,  INE_RESP_CADASTRO TEXT, DT_CADASTRO TEXT, ID_EQUIPE INTEGER, ORIGEM TEXT, SINCRONIZADO TEXT, DT_ENTRADA_BRASIL TEXT, DT_NATURALIZACAO TEXT, PORTARIA_NATURALIZACAO TEXT, CRIANCAS_ADULTO INTEGER, CRIANCAS_OUTRAS_CRIANCAS INTEGER, CRIANCAS_ADOLESCENTE INTEGER, CRIANCAS_SOZINHA INTEGER, CRIANCAS_CRECHE INTEGER, CRIANCAS_OUTRO INTEGER, IDENTIDADE_GENERO INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS CBOS (CODIGO_CBO TEXT, DESCRICAO_CBO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS CIAPS (CODIGO_CIAP TEXT, DESC_CIAP TEXT, TIPO_CIAP TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS CIDADAOS (ID_CIDADAO INTEGER PRIMARY KEY AUTOINCREMENT, CD_USUARIO_SUS TEXT, NOME_CIDADAO TEXT, NOME_SOCIAL TEXT, SEXO TEXT, DT_NASCIMENTO TEXT, ID_ESTADO_CIVIL INTEGER, NOME_CONJUGE TEXT, NACIONALIDADE INTEGER, ID_MUNICIPIO_NASC INTEGER, NO_MUNICIPIO_NASC TEXT, ESTADO_UF_NASC TEXT, ID_ETNIA INTEGER, ID_ESCOLARIDADE INTEGER, ID_DEFICIENCIA INTEGER, NOME_MAE TEXT, DESCONHECE_MAE INTEGER, NOME_PAI TEXT, DESCONHECE_PAI INTEGER, ID_UNIDADE INTEGER, NUM_PRONTUARIO TEXT, NUM_PRONTUARIO_PROV TEXT, CLASSIFICACAO INTEGER, CLASSIFICACAO_SUB INTEGER, NUM_FAMILIA INTEGER, ID_PAIS_RESID INTEGER, ID_MUNICIPIO_RESID INTEGER, NO_MUNICIPIO_RESID TEXT, ESTADO_UF_RESID TEXT, CODIGO_IBGE_RESID INTEGER, NO_BAIRRO_LOGR TEXT, ID_LOGR_TIPO INTEGER, NOME_LOGR TEXT, CEP_LOGR INTEGER, NUMERO_LOGR INTEGER, LOTEAMENTO_LOGR INTEGER, COMPL_LOGR TEXT, PONTO_REFERENCIA TEXT, ZONA_LOGR INTEGER, DDD_TELEFONE INTEGER, NUM_TELEFONE INTEGER, DDD_CELULAR INTEGER, NUM_CELULAR INTEGER, DDD_RECADO INTEGER, NUM_RECADO INTEGER, EMAIL TEXT, OBSERVACOES TEXT, CPF INTEGER, CNS TEXT, TITULO_ELEITOR INTEGER, RG_NUMERO INTEGER, RG_COMPLEMENTO TEXT, RG_UF TEXT, RG_ORGAO TEXT, RG_DATA_EMISSAO TEXT, TIPO_CERTIDAO INTEGER, NUM_CERTIDAO TEXT, CARTORIO_CERTIDAO TEXT, LIVRO_CERTIDAO TEXT, FOLHA_CERTIDAO TEXT, TERMO_CERTIDAO TEXT, DT_EMISSAO_CERTIDAO TEXT, NUM_CTPS TEXT, NUM_SERIE_CTPS TEXT, ESTADO_UF_CTPS TEXT, NUM_PIS_PASEP TEXT, FL_RETIROU_CARTAO INTEGER, NUM_NIS TEXT, NUM_PROT_CROSS TEXT, RENDA_MENSAL REAL, PROFISSAO TEXT, DT_OBITO TEXT, DECLARACAO_OBITO TEXT, BLOQUEIO INTEGER, ORIGEM INTEGER, DT_HORA_CADASTRO TEXT, ID_USUARIO_CADASTRO INTEGER, ID_DOMICILIO INTEGER, ATENDIMENTOS INTEGER, SINCRONIZADO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS CIDADAO_DOMICILIO (ID_DOMICILIO INTEGER PRIMARY KEY AUTOINCREMENT, TIPO_IMOVEL INTEGER, ID_AREA_DOMICILIO INTEGER, ID_MICROAREA_DOMICILIO INTEGER, FORA_AREA INTEGER, SITUACAO_MORADIA INTEGER, TIPO_LOCALIDADE INTEGER, TIPO_DOMICILIO INTEGER, NUM_MORADORES INTEGER, NUM_COMODOS INTEGER, SITUACAO_RURAL INTEGER, TIPO_ACESSO INTEGER, MAT_PREDOMINANTE INTEGER, DISPONIBILIDADE_ENERGIA INTEGER, TIPO_ABASTECIMENTO INTEGER, TRATAMENTO_AGUA INTEGER, DESTINO_LIXO INTEGER, ESCOAMENTO INTEGER, FL_ANIMAIS INTEGER, ANIMAIS_GATO INTEGER, ANIMAIS_CACHORRO INTEGER, ANIMAIS_PASSARO INTEGER, ANIMAIS_OUTROS INTEGER, QTDE_ANIMAIS INTEGER, CBO_RESP_CADASTRO TEXT, ID_RESP_CADASTRO INTEGER, CNES_RESP_CADASTRO TEXT, INE_RESP_CADASTRO TEXT, DT_CADASTRO TEXT, ID_EQUIPE INTEGER, ORIGEM TEXT, SINCRONIZADO TEXT, NOME_INSTITUICAO_PERMANENCIA TEXT, PROFISSIONAIS_VINCULADOS_INST INTEGER, RESPONSAVEL_TECNICO_INST TEXT, CNS_RESP_TECNICO_INST TEXT, CARGO_RESP_TECNICO_INST TEXT, TEL_RESP_TECNICO_INST TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS CIDS (CODIGO_CID TEXT, DESCRICAO_CID TEXT, RESTRICAO_SEXO INTEGER);');
        db.execute( 'CREATE TABLE IF NOT EXISTS CONTROLE_INTERNO (CARGA_INICIAL INTEGER, SYNC_UNIDADE INTEGER, CIDADE_LOAD TEXT, NOME_CIDADE TEXT, ID_MUNICIPIO INTEGER, UF_ESTADO TEXT, UNIDADE_SYNC TEXT, CODIGO_IBGE INTEGER, NOME_UNIDADE TEXT, AMBIENTE TEXT, ULTIMA_SINCRONIZACAO TEXT, COMPETENCIA TEXT, AREA INTEGER, MICROAREA INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS DOMICILIOS_CIDADAOS (ID_DOMICILIO INTEGER, CD_USUARIO_SUS TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS EQUIPES (ID_EQUIPE INTEGER PRIMARY KEY AUTOINCREMENT, ID_UNIDADE INTEGER, INE TEXT, ID_ATB_AREA INTEGER, AREA INTEGER, ID_ATB_MICROAREA INTEGER, MICROAREA INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS FICHAS_COMPLEMENTARES (ID_FICHA_COMPLEMENTAR INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, DATA_ATENDIMENTO TEXT, TURNO INTEGER, DATA_OLHINHO TEXT, RESULTADO_OLHINHO INTEGER, DATA_FUNDO_OLHO TEXT, RESULTADO_FUNDO_OLHO INTEGER, DATA_ORELHINHA TEXT, RESULTADO_ORELHINHA INTEGER, DATA_TRANSFONTANELA TEXT, RESULTADO_TRANSFONTANELA INTEGER, DATA_TOMOGRAFIA TEXT, RESULTADO_TOMOGRAFIA INTEGER, DATA_RESSONANCIA TEXT, RESULTADO_RESSONANCIA INTEGER, SINCRONIZADO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS LOGRADOUROS_ENDERECOS (ID_LOGR_ENDERECO INTEGER, ID_LOGR_TIPO INTEGER, DESC_LOGR_ENDERECO TEXT, ID_BAIRRO INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS LOGRADOUROS_LOTEAMENTOS (ID_LOGR_LOTEAMENTO INTEGER PRIMARY KEY AUTOINCREMENT, DESC_LOGR_LOTEAMENTO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS LOGRADOUROS_TIPOS (ID_LOGR_TIPO INTEGER PRIMARY KEY AUTOINCREMENT, NO_LOGR_TIPO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS MARCADORES_CONSUMO (ID_MARCADOR_CONSUMO INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, DATA_ATENDIMENTO TEXT, LOCAL_ATENDIMENTO INTEGER, GRUPO_PERGUNTAS INTEGER, SINCRONIZADO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS MARCADORES_CON_QUEST (ID_MARCADOR_CONSUMO INTEGER, PERGUNTA INTEGER, RESPOSTA INTEGER, GRUPO INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS MUNICIPIOS (ID_MUNICIPIO INTEGER PRIMARY KEY AUTOINCREMENT, NO_MUNICIPIO TEXT, CODIGO_IBGE TEXT, UF_ESTADO TEXT, ID_PAIS INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_FICHAS (ID_PROCEDIMENTOS_FICHA INTEGER PRIMARY KEY AUTOINCREMENT, AFERICAO_PA INTEGER, CURATIVO_SIMPLES INTEGER, GLICEMIA_CAPILAR INTEGER, MEDICAO_PESO INTEGER, COLETA_EXAME INTEGER, AFERICAO_TEMPERATURA INTEGER, MEDICAO_ALTURA INTEGER, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, DATA TEXT, SINCRONIZADO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_INDIV (ID_PROCEDIMENTOS_INDIV INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, DATA_ATENDIMENTO TEXT, TURNO INTEGER, LOCAL_ATENDIMENTO INTEGER, ESCUTA_INICIAL INTEGER, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, SINCRONIZADO TEXT, MEDICAO_PESO FLOAT, MEDICAO_ALTURA FLOAT, AFERICAO_PA INTEGER, GLICEMIA_CAPILAR INTEGER, AFERICAO_TEMPERATURA FLOAT,COLETA_EXAME CHAR);');
        db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_INDIV_FICHA (ID_PROCEDIMENTOS_INDIV_FICHA INTEGER PRIMARY KEY AUTOINCREMENT, ID_PROCEDIMENTOS_INDIV INTEGER, COD_PROCEDIMENTO_FICHA TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_INDIV_SIGTAP (ID_PROCEDIMENTOS_INDIV INTEGER, COD_PROC_SIGTAP TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_INICIAIS (ATENDIMENTO INTEGER, COD_PROC_SIGTAP TEXT, CODIGO_CBO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_SIGTAP (COD_PROC_SIGTAP TEXT, DESC_PROC_SIGTAP TEXT, GRUPO_PROC_SIGTAP TEXT, QTDE_MAXIMA INTEGER, IDADE_MIN INTEGER, IDADE_MAX INTEGER, SEXO INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_SIGTAP_CBO (COD_PROC_SIGTAP TEXT, CODIGO_CBO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_SIGTAP_CID (COD_PROC_SIGTAP TEXT, CODIGO_CID TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS PROCEDIMENTOS_SIGTAP_REGISTRO (COD_PROC_SIGTAP TEXT, CODIGO_REGISTRO INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS PROFISSIONAIS (ID_PROFISSIONAL INTEGER PRIMARY KEY AUTOINCREMENT, NOME_PROFISSIONAL TEXT, CNS_PROFISSIONAL TEXT, USERNAME TEXT, SENHA TEXT, BLOQUEIO_ACESSO INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS PROFISSIONAIS_CBOS (ID_PROFISSIONAL INTEGER, CODIGO_CBO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS PROFISSIONAIS_EQUIPE (ID_EQUIPE INTEGER, ID_PROFISSIONAL INTEGER, ATIVO INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS UNIDADES (ID_UNIDADE INTEGER PRIMARY KEY AUTOINCREMENT, NOME_UNIDADE TEXT, CNES_UNIDADE TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS VISITAS_DOMICILIARES (ID_VISITA_DOMICILIAR INTEGER PRIMARY KEY AUTOINCREMENT, ID_CIDADAO INTEGER, CD_USUARIO_SUS TEXT, DT_ATENDIMENTO TEXT, TURNO INTEGER, TIPO_IMOVEL INTEGER, VISITA_ACOMPANHADA INTEGER, DESFECHO INTEGER, PESO TEXT, ALTURA TEXT, ID_PROFISSIONAL INTEGER, CBO_PROFISSIONAL TEXT, INE_PROFISSIONAL TEXT, CNES_UNIDADE TEXT, ID_UNIDADE INTEGER, ID_EQUIPE INTEGER, COMPLEMENTO TEXT, SINCRONIZADO TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS VISITAS_DOMICILIARES_COMPL (ID_VISITA_DOMICILIAR INTEGER, ID_VISITA_DOM_TIPO INTEGER, ID_VISITA_COMPLEMENTO INTEGER);');
        db.execute('CREATE TABLE IF NOT EXISTS VISITAS_DOMICILIARES_PROC (ID_VISITA_DOMICILIAR INTEGER, COD_PROC_SIGTAP TEXT);');
        db.execute('CREATE TABLE IF NOT EXISTS ARGS (ID_USER INTEGER, MODE TEXT, USER TEXT, PASSWORD TEXT, URLAPI TEXT, COD_CITY INTEGER, NAME_CITY_API TEXT, NAME_CITY_FRONT TEXT, COD_STATE TEXT, COD_IBGE INTEGER);');
      }
    );
   return db;
  }
  Future deleteLoad()async{
       var querys = [
            'UPDATE CONTROLE_INTERNO SET SYNC_UNIDADE = NULL, UNIDADE_SYNC = NULL, NOME_UNIDADE = NULL WHERE rowid = 1;',
            'DELETE FROM ATENDS_DOM_COMPL;',
            'DELETE FROM ATENDS_DOM_PROC;',
            'DELETE FROM ATENDS_DOM_SIGTAP;',
            'DELETE FROM ATENDIMENTOS_DOMICILIARES;',
            'DELETE FROM ATENDS_INDIV_PROC;',
            'DELETE FROM ATENDS_INDIV_PROF;',
            'DELETE FROM ATENDS_INDIVIDUAIS;',
            'DELETE FROM BAIRROS;',
            'DELETE FROM CADASTROS_INDIVIDUAIS;',
            'DELETE FROM CBOS;',
            'DELETE FROM CIAPS;',
            'DELETE FROM CIDADAOS;',
            'DELETE FROM CIDADAO_DOMICILIO;',
            'DELETE FROM CIDS;',
            'DELETE FROM CONTROLE_INTERNO;',
            'DELETE FROM DOMICILIOS_CIDADAOS;',
            'DELETE FROM EQUIPES;',
            'DELETE FROM FICHAS_COMPLEMENTARES;',
            'DELETE FROM LOGRADOUROS_ENDERECOS;',
            'DELETE FROM LOGRADOUROS_LOTEAMENTOS;',
            'DELETE FROM LOGRADOUROS_TIPOS;',
            'DELETE FROM MUNICIPIOS;',
            'DELETE FROM PROCEDIMENTOS_FICHAS;',
            'DELETE FROM PROCEDIMENTOS_INDIV;',
            'DELETE FROM PROCEDIMENTOS_INDIV_FICHA;',
            'DELETE FROM PROCEDIMENTOS_INDIV_SIGTAP;',
            'DELETE FROM PROCEDIMENTOS_SIGTAP;',
            'DELETE FROM PROCEDIMENTOS_SIGTAP_CBO;',
            'DELETE FROM PROCEDIMENTOS_SIGTAP_CID;',
            'DELETE FROM PROCEDIMENTOS_SIGTAP_REGISTRO;',
            'DELETE FROM PROFISSIONAIS;',
            'DELETE FROM PROFISSIONAIS_CBOS;',
            'DELETE FROM PROFISSIONAIS_EQUIPE;',
            'DELETE FROM UNIDADES;',
            'DELETE FROM VISITAS_DOMICILIARES;',
            'DELETE FROM VISITAS_DOMICILIARES_COMPL;',
            'DELETE FROM VISITAS_DOMICILIARES_PROC;',
            'DELETE FROM ARGS;',
       ];
       Database db = await intialDB();
       for(int i=0;querys.length>i;i++){
           db.execute(querys[i]);
       }
  }

 Future saveArgs(mode,user,password,urlAPI,codCity,nameCityApi,nameCityFront,codState,codCityIbge)async{
     Database db = await intialDB();
     Map<String, dynamic> row = {
           'ID_USER'        : 1,
           'MODE'           : mode,
           'USER'           : user,
           'PASSWORD'       : password,
           'URLAPI'         : urlAPI,
           'COD_CITY'        : codCity,
           'NAME_CITY_API'  : nameCityApi,
           'NAME_CITY_FRONT': nameCityFront,
           'COD_STATE'      : codState,
           'COD_IBGE'       : codCityIbge,
      };
      int id = await db.insert('ARGS', row);
      return db;
 }

 Future updateArgs(mode,user,password)async{
      Database db = await intialDB();
      var query = "UPDATE ARGS SET USER = '$user' WHERE ID_USER = 1;";
      var query1 = "UPDATE ARGS SET PASSWORD = '$password' WHERE ID_USER = 1;";
      await db.execute(query);
      await db.execute(query1);
      // print(await db.query('ARGS'));
      return db;
 }

  Future saveUnidadesDB(var value)async{
       Database db = await intialDB();
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'ID_UNIDADE'   : value[i]['idUnidade'],
                 'NOME_UNIDADE' : value[i]['nomeFantasia'],
                 'CNES_UNIDADE' : value[i]['nrCNES']
            };
            int id = await db.insert('UNIDADES', row);
            // print('id increment $id');
            // print(await db.query('UNIDADES'));
       }
       return db;
  }
  Future saveProceduresDB(var value)async{
       Database db = await intialDB();

       // var query = "INSERT OR REPLACE INTO PROCEDIMENTOS_SIGTAP (COD_PROC_SIGTAP, DESC_PROC_SIGTAP, GRUPO_PROC_SIGTAP, QTDE_MAXIMA, IDADE_MIN, IDADE_MAX, SEXO) VALUES (?,?,?,?,?,?,?)";
       // {"codProcedimento":"0701020580","nome":"MANUTEN\u00c7\u00c3O DE OPM ORTOP\u00c9DICA","codGrupo":"07","qtdeMax":2,"idadeMin":833,"idadeMax":833,"sexo":"N"}
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'COD_PROC_SIGTAP'      : value[i]['codProcedimento'],
                 'DESC_PROC_SIGTAP'     : value[i]['nome'],
                 'GRUPO_PROC_SIGTAP'    : value[i]['codGrupo'],
                 'QTDE_MAXIMA'          : value[i]['qtdeMax'],
                 'IDADE_MIN'            : value[i]['idadeMin'],
                 'IDADE_MAX'            : value[i]['idadeMax'],
                 'SEXO'                 : value[i]['sexo'],
            };
            int id = await db.insert('PROCEDIMENTOS_SIGTAP', row);
            // print('id increment $id');
            // print(await db.query('PROCEDIMENTOS_SIGTAP'));
       }
       return db;
  }
  Future saveProceduresRegisterDB(var value)async{
       Database db = await intialDB();
       // "INSERT OR REPLACE INTO PROCEDIMENTOS_SIGTAP_REGISTRO (COD_PROC_SIGTAP, CODIGO_REGISTRO) VALUES (?,?)";
       // {"codProcedimento":"0101010010","codRegistro":"01"}
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'COD_PROC_SIGTAP'     : value[i]['codProcedimento'],
                 'CODIGO_REGISTRO'     : value[i]['codRegistro'],
            };
            int id = await db.insert('PROCEDIMENTOS_SIGTAP_REGISTRO', row);
            // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
            // print(await db.query('PROCEDIMENTOS_SIGTAP_REGISTRO'));
       }
       return db;
  }
  Future saveCID(var value)async{
       Database db = await intialDB();
       // "INSERT OR REPLACE INTO CIDS (CODIGO_CID, DESCRICAO_CID, RESTRICAO_SEXO) VALUES (?,?,?)"
       // {"codCID":"A000","descCID":"A00.0 Colera dev Vibrio cholerae 01 biot cholerae","restSexo":"5"},
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'CODIGO_CID'      : value[i]['codCID'],
                 'DESCRICAO_CID'   : value[i]['descCID'],
                 'RESTRICAO_SEXO'  : value[i]['restSexo'],
            };
            int id = await db.insert('CIDS', row);
            // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
       }
       // print(await db.query('CIDS'));
       return db;
  }
  Future saveProceduresCID(var value)async{
       Database db = await intialDB();
       //  "INSERT OR REPLACE INTO PROCEDIMENTOS_SIGTAP_CID (COD_PROC_SIGTAP, CODIGO_CID) VALUES (?,?)"
       // {"codProcedimento":"0201010046","codCID":"C211"}
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'COD_PROC_SIGTAP' : value[i]['codProcedimento'],
                 'CODIGO_CID'      : value[i]['codCID'],
            };
            int id = await db.insert('PROCEDIMENTOS_SIGTAP_CID', row);
            // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
       }
       // print(await db.query('PROCEDIMENTOS_SIGTAP_CID'));
       return db;
  }
  Future saveCBO(var value)async{
       Database db = await intialDB();
       //  "INSERT OR REPLACE INTO CBOS (CODIGO_CBO, DESCRICAO_CBO) VALUES (?,?)"
       // "codCBO":"223208","descCBO":"Cirurgi\u00e3o dentista - cl\u00ednico geral"
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'CODIGO_CBO'      : value[i]['codCBO'],
                 'DESCRICAO_CBO'   : value[i]['descCBO'],
            };
            int id = await db.insert('CBOS', row);
            // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
       }
       // print(await db.query('CBOS'));
       return db;
  }
  Future saveProceduresCBO(var value)async{
       Database db = await intialDB();
       //  "INSERT OR REPLACE INTO PROCEDIMENTOS_SIGTAP_CBO (COD_PROC_SIGTAP, CODIGO_CBO) VALUES (?,?)";
       // "codProcedimento":"0101010010","codCBO":"223208"
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'COD_PROC_SIGTAP' : value[i]['codProcedimento'],
                 'CODIGO_CBO'      : value[i]['codCBO'],
            };
            int id = await db.insert('PROCEDIMENTOS_SIGTAP_CBO', row);
            // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
       }
       // print(await db.query('PROCEDIMENTOS_SIGTAP_CBO'));
       return db;
  }
  Future saveCIAP(var value)async{
       Database db = await intialDB();
       //  "INSERT OR REPLACE INTO CIAPS (CODIGO_CIAP, DESC_CIAP, TIPO_CIAP) VALUES (?,?,?)";
       // "codCIAP":"30","descCIAP":"EXAME M\u00c9DICO\/AVALIA\u00c7\u00c3ODE SA\u00daDE - COMPLETO","tipoCIAP":"PROC"
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'CODIGO_CIAP' : value[i]['codCIAP'],
                 'DESC_CIAP'   : value[i]['descCIAP'],
                 'TIPO_CIAP'   : value[i]['tipoCIAP'],
            };
            int id = await db.insert('CIAPS', row);
            // print('id increment $id CIAPS');
       }
       // print(await db.query('CIAPS'));
       return db;
  }
  Future saveCity(var value)async{
       Database db = await intialDB();
       //  "INSERT OR REPLACE INTO MUNICIPIOS (ID_MUNICIPIO, CODIGO_IBGE, NO_MUNICIPIO, UF_ESTADO, ID_PAIS) VALUES (?,?,?,?,?)"
       // "idMunicipio":1,"codIBGE":"000000","nomeMunicipio":"MUNICIPIO IGNORADO","UF":"--","idPais":33
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'ID_MUNICIPIO'    : value[i]['idMunicipio'],
                 'CODIGO_IBGE'     : value[i]['codIBGE'],
                 'NO_MUNICIPIO'    : value[i]['nomeMunicipio'],
                 'UF_ESTADO'       : value[i]['UF'],
                 'ID_PAIS'         : value[i]['idPais'],
            };
            int id = await db.insert('MUNICIPIOS', row);
            // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
       }
       // print(await db.query('MUNICIPIOS'));
       return db;
  }
  Future saveTeam(var value)async{
       Database db = await intialDB();
       //  INSERT OR REPLACE INTO EQUIPES (ID_EQUIPE, ID_UNIDADE, INE, ID_ATB_AREA, AREA, ID_ATB_MICROAREA, MICROAREA) VALUES (?,?,?,?,?,?,?)";
       // {"idEquipe":1,"idUnidade":3,"INE":"0001485628","idAtbArea":1,"area":1,"idAtbMicroarea":null,"microarea":null}
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'ID_EQUIPE'       : value[i]['idEquipe'],
                 'ID_UNIDADE'      : value[i]['idUnidade'],
                 'INE'             : value[i]['INE'],
                 'ID_ATB_AREA'     : value[i]['idAtbArea'],
                 'AREA'            : value[i]['area'],
                 'ID_ATB_MICROAREA': value[i]['idAtbMicroarea'],
                 'MICROAREA'       : value[i]['microarea'],
            };
            int id = await db.insert('EQUIPES', row);
            // print('id increment $id EQUIPES');
       }
       // print(await db.query('EQUIPES'));
       return db;
  }
  Future saveTeamComponents(var value)async{
       Database db = await intialDB();
       //  "INSERT OR REPLACE INTO PROFISSIONAIS_EQUIPE (ID_EQUIPE, ID_PROFISSIONAL, ATIVO) VALUES (?,?,?)";
       // {"idEquipe":1,"idProfissional":2,"ativo":"1"}
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'ID_EQUIPE'       : value[i]['idEquipe'],
                 'ID_PROFISSIONAL' : value[i]['idProfissional'],
                 'ATIVO'           : value[i]['ativo'],
            };
            int id = await db.insert('PROFISSIONAIS_EQUIPE', row);
            // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
       }
       // print(await db.query('PROFISSIONAIS_EQUIPE'));
       return db;
  }
 Future saveProceduresInit(var value)async{
      Database db = await intialDB();
     int id = await db.insert('PROCEDIMENTOS_INICIAIS', value);
           // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
      print(await db.query('PROCEDIMENTOS_INICIAIS'));
      return db;
 }

 Future deleteProceduresInit(int ATENDIMENTO,String CODIGO_CBO,String COD_PROC_SIGTAP)async{
   Database db = await intialDB();
   await db.rawDelete('DELETE FROM PROCEDIMENTOS_INICIAIS WHERE ATENDIMENTO = $ATENDIMENTO AND CODIGO_CBO = "$CODIGO_CBO" AND COD_PROC_SIGTAP = "$COD_PROC_SIGTAP"');
   // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
   print(await db.query('PROCEDIMENTOS_INICIAIS'));
   return db;
 }
}