CREATE TABLE agenda( 
      id  INT IDENTITY    NOT NULL  , 
      clinica_id int   NOT NULL  , 
      profissional_id int   NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      horario_inicial time   NOT NULL    DEFAULT '08:00', 
      horario_final time   NOT NULL    DEFAULT '18:00', 
      visualizacao_inicial varchar  (30)   NOT NULL    DEFAULT 'agendaWeek', 
      horario_inicio_intervalo time   , 
      horario_fim_intervalo time   , 
      duracao int   NOT NULL    DEFAULT 30, 
      dias nvarchar(max)   NOT NULL  , 
      procedimento_id int   , 
      cor varchar  (10)   , 
      aceita_agendamento_online char  (1)     DEFAULT 'F', 
      publica char  (1)     DEFAULT 'F', 
      fl_permite_choque_horario char  (1)     DEFAULT 'T', 
 PRIMARY KEY (id)) ; 

CREATE TABLE agendamento( 
      id  INT IDENTITY    NOT NULL  , 
      paciente_id int   NOT NULL  , 
      estado_agenda_id int   NOT NULL  , 
      agenda_id int   NOT NULL  , 
      especialidade_id int   , 
      dt_inicial datetime2   NOT NULL  , 
      dt_final datetime2   NOT NULL  , 
      agendamento_original_id int   , 
      observacao nvarchar(max)   , 
      ativo char  (1)     DEFAULT 'T', 
      ano_inicial nvarchar(max)   , 
      mes_inicial nvarchar(max)   , 
      ano_mes_inicial nvarchar(max)   , 
      ano_final nvarchar(max)   , 
      mes_final nvarchar(max)   , 
      ano_mes_final nvarchar(max)   , 
      online char  (1)     DEFAULT 'F', 
      link_atendimento_online nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE agendamento_procedimento( 
      id  INT IDENTITY    NOT NULL  , 
      agendamento_id int   NOT NULL  , 
      procedimento_id int   NOT NULL  , 
      convenio_id int   NOT NULL  , 
      quantidade float   NOT NULL  , 
      valor float   , 
      valor_total float   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE agenda_profissional( 
      id  INT IDENTITY    NOT NULL  , 
      profissional_id int   NOT NULL  , 
      agenda_id int   NOT NULL  , 
      fl_manipula_atendimento char   NOT NULL    DEFAULT 'N', 
 PRIMARY KEY (id)) ; 

CREATE TABLE anexo( 
      id  INT IDENTITY    NOT NULL  , 
      atendimento_id int   NOT NULL  , 
      arquivo nvarchar(max)   NOT NULL  , 
      observacao nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE atendimento( 
      id  INT IDENTITY    NOT NULL  , 
      agendamento_id int   NOT NULL  , 
      paciente_id int   NOT NULL  , 
      profissional_id int   NOT NULL  , 
      dt_inicio datetime2   NOT NULL  , 
      dt_final datetime2   , 
      valor_total float   , 
      ano_inicial nvarchar(max)   , 
      mes_inicial nvarchar(max)   , 
      ano_mes_inicial nvarchar(max)   , 
      mes_final nvarchar(max)   , 
      ano_final nvarchar(max)   , 
      ano_mes_final nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE atendimento_material( 
      id  INT IDENTITY    NOT NULL  , 
      material_id int   NOT NULL  , 
      atendimento_id int   NOT NULL  , 
      quantidade float   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE atendimento_medico_visualiza( 
      id  INT IDENTITY    NOT NULL  , 
      atendimento_id int   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE atendimento_procedimento( 
      id  INT IDENTITY    NOT NULL  , 
      convenio_id int   NOT NULL  , 
      atendimento_id int   NOT NULL  , 
      procedimento_id int   NOT NULL  , 
      quantidade float   NOT NULL  , 
      valor float   , 
      valor_total float   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE bloqueio( 
      id  INT IDENTITY    NOT NULL  , 
      agenda_id int   NOT NULL  , 
      dt_inicio datetime2   NOT NULL  , 
      dt_final datetime2   NOT NULL  , 
      observacao nvarchar(max)   , 
      horario_bloqueio_original int   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE categoria_conta( 
      id  INT IDENTITY    NOT NULL  , 
      tipo_conta_id int   NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE cep_cache( 
      id  INT IDENTITY    NOT NULL  , 
      cep varchar  (12)   NOT NULL  , 
      codigo_ibge nvarchar(max)   , 
      rua nvarchar(max)   , 
      cidade nvarchar(max)   , 
      uf nvarchar(max)   , 
      cidade_id int   , 
      bairro nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE cidade( 
      id  INT IDENTITY    NOT NULL  , 
      estado_id int   NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      codigo_ibge nvarchar(max)   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE clinica( 
      id  INT IDENTITY    NOT NULL  , 
      system_unit_id int   NOT NULL  , 
      cidade_id int   NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      cnpj nvarchar(max)   NOT NULL  , 
      telefone nvarchar(max)   NOT NULL  , 
      email nvarchar(max)   NOT NULL  , 
      endereco nvarchar(max)   NOT NULL  , 
      bairro nvarchar(max)   NOT NULL  , 
      cep nvarchar(max)   NOT NULL  , 
      numero nvarchar(max)   , 
      complemento nvarchar(max)   , 
      logo_documento nvarchar(max)   , 
      url_sistema nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE clinica_convenio( 
      id  INT IDENTITY    NOT NULL  , 
      convenio_id int   NOT NULL  , 
      clinica_id int   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE conta( 
      id  INT IDENTITY    NOT NULL  , 
      pessoa_id int   NOT NULL  , 
      categoria_conta_id int   NOT NULL  , 
      tipo_conta_id int   NOT NULL  , 
      clinica_id int   NOT NULL  , 
      atendimento_id int   , 
      data_emissao date   NOT NULL  , 
      total_parcelas int   NOT NULL    DEFAULT 1, 
      quitada char  (1)   NOT NULL    DEFAULT 'N', 
      descricao nvarchar(max)   NOT NULL  , 
      conta_origem_id int   , 
      total_conta float   NOT NULL  , 
      mes nvarchar(max)   , 
      ano nvarchar(max)   , 
      ano_mes nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE convenio( 
      id  INT IDENTITY    NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE documento( 
      id  INT IDENTITY    NOT NULL  , 
      atendimento_id int   NOT NULL  , 
      tipo_documento_id int   NOT NULL  , 
      procedimento_id int   , 
      texto nvarchar(max)   NOT NULL  , 
      dt_preenchimento datetime2   NOT NULL  , 
      autenticador nvarchar(max)   , 
      dt_validade date   NOT NULL  , 
      medico_assistente nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE email_config( 
      id  INT IDENTITY    NOT NULL  , 
      clinica_id int   NOT NULL  , 
      port nvarchar(max)   , 
      username nvarchar(max)   , 
      password nvarchar(max)   , 
      host nvarchar(max)   , 
      from_email nvarchar(max)   , 
      from_name nvarchar(max)   , 
      smtp_auth char  (1)     DEFAULT 'T', 
 PRIMARY KEY (id)) ; 

CREATE TABLE especialidade( 
      id  INT IDENTITY    NOT NULL  , 
      descricao nvarchar(max)   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE estado( 
      id  INT IDENTITY    NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      sigla char  (2)   NOT NULL  , 
      codigo_ibge nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE estado_agenda( 
      id  INT IDENTITY    NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      estado_inicial char   NOT NULL    DEFAULT 'N', 
      estado_final char   NOT NULL    DEFAULT 'N', 
      cor varchar  (10)   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE estado_agendamento( 
      id  INT IDENTITY    NOT NULL  , 
      agendamento_id int   NOT NULL  , 
      estado_agenda_id int   NOT NULL  , 
      system_users_id int   , 
      atribuido_em datetime2   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE exame( 
      id  INT IDENTITY    NOT NULL  , 
      ativo char  (1)   NOT NULL    DEFAULT 'S', 
      nome nvarchar(max)   NOT NULL  , 
      codigo_referencia nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE exame_atendimento( 
      id  INT IDENTITY    NOT NULL  , 
      atendimento_id int   NOT NULL  , 
      exame_id int   NOT NULL  , 
      indicacao_clinica nvarchar(max)   NOT NULL  , 
      dt_exames date   NOT NULL  , 
      quantidade int   NOT NULL    DEFAULT 1, 
 PRIMARY KEY (id)) ; 

CREATE TABLE formulario( 
      id  INT IDENTITY    NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      ativo char  (1)   NOT NULL    DEFAULT 'S', 
      ordem int   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE grupo( 
      id  INT IDENTITY    NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      cor varchar  (10)   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE lancamento( 
      id  INT IDENTITY    NOT NULL  , 
      conta_id int   NOT NULL  , 
      tipo_pagamento_id int   NOT NULL  , 
      parcela int   NOT NULL    DEFAULT 1, 
      dt_vencimento date   NOT NULL  , 
      valor float   NOT NULL  , 
      dt_pagamento date   , 
      ano_pagamento nvarchar(max)   , 
      mes_pagamento nvarchar(max)   , 
      ano_mes_pagamento nvarchar(max)   , 
      ano_vencimento nvarchar(max)   , 
      mes_vencimento nvarchar(max)   , 
      ano_mes_vencimento nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE material( 
      id  INT IDENTITY    NOT NULL  , 
      unidade_medida_id int   NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      estoque_minimo float   , 
      dt_vencimento date   , 
      estoque_atualizado float   , 
      lote nvarchar(max)   , 
      ativo char  (1)   NOT NULL    DEFAULT 'S', 
 PRIMARY KEY (id)) ; 

CREATE TABLE medicamento( 
      id  INT IDENTITY    NOT NULL  , 
      prescricao_id int   NOT NULL  , 
      medicamento nvarchar(max)   NOT NULL  , 
      quantidade nvarchar(max)   NOT NULL  , 
      posologia nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE mensagem( 
      id  INT IDENTITY    NOT NULL  , 
      agendamento_id int   NOT NULL  , 
      template_clinica_id int   , 
      system_user_id int   NOT NULL  , 
      titulo nvarchar(max)   , 
      template nvarchar(max)   , 
      enviado_em datetime2   , 
      tipo_mensagem nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE mensagem_acao( 
      id  INT IDENTITY    NOT NULL  , 
      mensagem_id int   NOT NULL  , 
      url nvarchar(max)   , 
      label nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE movimentacao( 
      id  INT IDENTITY    NOT NULL  , 
      material_id int   NOT NULL  , 
      system_user_id int   NOT NULL  , 
      dt_movimentacao nvarchar(max)   , 
      quantidade float   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE pessoa( 
      id  INT IDENTITY    NOT NULL  , 
      nome varchar  (255)   NOT NULL  , 
      documento nvarchar(max)   , 
      email varchar  (255)   , 
      telefone varchar  (20)   , 
      system_users_id int   , 
      sexo char  (1)   , 
      nome_civel varchar  (255)   , 
      rg nvarchar(max)   , 
      dt_nascimento date   , 
      profissao nvarchar(max)   , 
      tratamento nvarchar(max)   , 
      observacao nvarchar(max)   , 
      assinatura nvarchar(max)   , 
      usuario varchar  (255)   , 
      senha varchar  (255)   , 
      foto nvarchar(max)   , 
      aceita_receber_mensagen_whatsapp char  (1)   NOT NULL    DEFAULT 'F', 
 PRIMARY KEY (id)) ; 

CREATE TABLE pessoa_endereco( 
      id  INT IDENTITY    NOT NULL  , 
      pessoa_id int   NOT NULL  , 
      cidade_id int   NOT NULL  , 
      cep varchar  (10)   NOT NULL  , 
      rua varchar  (500)   NOT NULL  , 
      bairro varchar  (500)   NOT NULL  , 
      numero varchar  (100)   NOT NULL  , 
      complemento varchar  (500)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE pessoa_especialidade( 
      id  INT IDENTITY    NOT NULL  , 
      pessoa_id int   NOT NULL  , 
      especialidade_id int   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE pessoa_grupo( 
      id  INT IDENTITY    NOT NULL  , 
      pessoa_id int   NOT NULL  , 
      grupo_id int   NOT NULL  , 
      cor varchar  (10)     DEFAULT '#ffffff', 
 PRIMARY KEY (id)) ; 

CREATE TABLE prescricao( 
      id  INT IDENTITY    NOT NULL  , 
      atendimento_id int   NOT NULL  , 
      controle_especial char  (1)   NOT NULL    DEFAULT 'N', 
      dt_prescricao date   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE procedimento( 
      id int   NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      cor varchar  (10)   NOT NULL  , 
      duracao time   , 
      codigo_referencia nvarchar(max)   , 
      ativo char  (1)   NOT NULL    DEFAULT 'S', 
 PRIMARY KEY (id)) ; 

CREATE TABLE procedimento_material( 
      id  INT IDENTITY    NOT NULL  , 
      procedimento_id int   NOT NULL  , 
      material_id int   NOT NULL  , 
      quantidade float   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE procedimento_preco( 
      id  INT IDENTITY    NOT NULL  , 
      procedimento_id int   NOT NULL  , 
      convenio_id int   NOT NULL  , 
      valor float   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE questao( 
      id  INT IDENTITY    NOT NULL  , 
      formulario_id int   NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      tipo_campo nvarchar(max)   NOT NULL  , 
      fl_obrigatorio char   NOT NULL    DEFAULT 'N', 
      ativo char  (1)   NOT NULL    DEFAULT 'S', 
      opcoes nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE resposta( 
      id  INT IDENTITY    NOT NULL  , 
      resposta_formulario_id int   NOT NULL  , 
      questao_id int   NOT NULL  , 
      resposta nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE resposta_formulario( 
      id  INT IDENTITY    NOT NULL  , 
      formulario_id int   NOT NULL  , 
      atendimento_id int   NOT NULL  , 
      dt_resposta date   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE system_group( 
      id int   NOT NULL  , 
      name nvarchar(max)   NOT NULL  , 
      uuid varchar  (36)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE system_group_program( 
      id int   NOT NULL  , 
      system_group_id int   NOT NULL  , 
      system_program_id int   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE system_preference( 
      id varchar  (255)   NOT NULL  , 
      preference nvarchar(max)   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE system_program( 
      id int   NOT NULL  , 
      name nvarchar(max)   NOT NULL  , 
      controller nvarchar(max)   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE system_unit( 
      id int   NOT NULL  , 
      name nvarchar(max)   NOT NULL  , 
      connection_name nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE system_user_group( 
      id int   NOT NULL  , 
      system_user_id int   NOT NULL  , 
      system_group_id int   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE system_user_program( 
      id int   NOT NULL  , 
      system_user_id int   NOT NULL  , 
      system_program_id int   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE system_users( 
      id int   NOT NULL  , 
      name nvarchar(max)   NOT NULL  , 
      login nvarchar(max)   NOT NULL  , 
      password nvarchar(max)   NOT NULL  , 
      email nvarchar(max)   , 
      frontpage_id int   , 
      system_unit_id int   , 
      active char  (1)   , 
      accepted_term_policy char  (1)   , 
      accepted_term_policy_at nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE system_user_unit( 
      id int   NOT NULL  , 
      system_user_id int   NOT NULL  , 
      system_unit_id int   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE template_acao( 
      id  INT IDENTITY    NOT NULL  , 
      template_clinica_id int   NOT NULL  , 
      url nvarchar(max)   , 
      label nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

CREATE TABLE template_clinica( 
      id  INT IDENTITY    NOT NULL  , 
      chave nvarchar(max)   NOT NULL  , 
      descricao nvarchar(max)   NOT NULL  , 
      clinica_id int   NOT NULL  , 
      habilitado char  (1)   NOT NULL    DEFAULT 'T', 
      template nvarchar(max)   , 
      titulo nvarchar(max)   , 
      tipo_template nvarchar(max)   , 
      readonly char  (1)   NOT NULL    DEFAULT 'F', 
 PRIMARY KEY (id)) ; 

CREATE TABLE tipo_conta( 
      id  INT IDENTITY    NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE tipo_documento( 
      id  INT IDENTITY    NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      texto_padrao nvarchar(max)   NOT NULL  , 
      ativo char  (1)   NOT NULL    DEFAULT 'S', 
 PRIMARY KEY (id)) ; 

CREATE TABLE tipo_pagamento( 
      id  INT IDENTITY    NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      ativo char  (1)   NOT NULL    DEFAULT 'S', 
 PRIMARY KEY (id)) ; 

CREATE TABLE unidade_medida( 
      id  INT IDENTITY    NOT NULL  , 
      nome nvarchar(max)   NOT NULL  , 
      sigla nvarchar(max)   NOT NULL  , 
 PRIMARY KEY (id)) ; 

CREATE TABLE whatsapp_config( 
      id  INT IDENTITY    NOT NULL  , 
      clinica_id int   NOT NULL  , 
      phone nvarchar(max)   , 
      status nvarchar(max)   , 
      api_token nvarchar(max)   , 
      api_key nvarchar(max)   , 
 PRIMARY KEY (id)) ; 

 
 ALTER TABLE cep_cache ADD UNIQUE (cep);
  
 ALTER TABLE agenda ADD CONSTRAINT fk_agenda_1 FOREIGN KEY (clinica_id) references clinica(id); 
ALTER TABLE agenda ADD CONSTRAINT fk_agenda_2 FOREIGN KEY (profissional_id) references pessoa(id); 
ALTER TABLE agenda ADD CONSTRAINT fk_agenda_3 FOREIGN KEY (procedimento_id) references procedimento(id); 
ALTER TABLE agendamento ADD CONSTRAINT fk_agendamento_1 FOREIGN KEY (paciente_id) references pessoa(id); 
ALTER TABLE agendamento ADD CONSTRAINT fk_agendamento_2 FOREIGN KEY (estado_agenda_id) references estado_agenda(id); 
ALTER TABLE agendamento ADD CONSTRAINT fk_agendamento_3 FOREIGN KEY (agenda_id) references agenda(id); 
ALTER TABLE agendamento ADD CONSTRAINT fk_agendamento_4 FOREIGN KEY (especialidade_id) references especialidade(id); 
ALTER TABLE agendamento_procedimento ADD CONSTRAINT fk_agendamento_procedimento_1 FOREIGN KEY (agendamento_id) references agendamento(id); 
ALTER TABLE agendamento_procedimento ADD CONSTRAINT fk_agendamento_procedimento_2 FOREIGN KEY (procedimento_id) references procedimento(id); 
ALTER TABLE agendamento_procedimento ADD CONSTRAINT fk_agendamento_procedimento_3 FOREIGN KEY (convenio_id) references convenio(id); 
ALTER TABLE agenda_profissional ADD CONSTRAINT fk_agenda_profissional_1 FOREIGN KEY (profissional_id) references pessoa(id); 
ALTER TABLE agenda_profissional ADD CONSTRAINT fk_agenda_profissional_2 FOREIGN KEY (agenda_id) references agenda(id); 
ALTER TABLE anexo ADD CONSTRAINT fk_anexo_1 FOREIGN KEY (atendimento_id) references atendimento(id); 
ALTER TABLE atendimento ADD CONSTRAINT fk_atendimento_2 FOREIGN KEY (paciente_id) references pessoa(id); 
ALTER TABLE atendimento ADD CONSTRAINT fk_atendimento_3 FOREIGN KEY (profissional_id) references pessoa(id); 
ALTER TABLE atendimento ADD CONSTRAINT fk_atendimento_1 FOREIGN KEY (agendamento_id) references agendamento(id); 
ALTER TABLE atendimento_material ADD CONSTRAINT fk_atendimento_material_1 FOREIGN KEY (material_id) references material(id); 
ALTER TABLE atendimento_material ADD CONSTRAINT fk_atendimento_material_2 FOREIGN KEY (atendimento_id) references atendimento(id); 
ALTER TABLE atendimento_medico_visualiza ADD CONSTRAINT fk_atendimento_medico_visualiza_1 FOREIGN KEY (atendimento_id) references atendimento(id); 
ALTER TABLE atendimento_procedimento ADD CONSTRAINT fk_atendimento_procedimento_1 FOREIGN KEY (atendimento_id) references atendimento(id); 
ALTER TABLE atendimento_procedimento ADD CONSTRAINT fk_atendimento_procedimento_2 FOREIGN KEY (procedimento_id) references procedimento(id); 
ALTER TABLE atendimento_procedimento ADD CONSTRAINT fk_atendimento_procedimento_3 FOREIGN KEY (convenio_id) references convenio(id); 
ALTER TABLE bloqueio ADD CONSTRAINT fk_bloqueio_1 FOREIGN KEY (agenda_id) references agenda(id); 
ALTER TABLE categoria_conta ADD CONSTRAINT fk_categoria_conta_1 FOREIGN KEY (tipo_conta_id) references tipo_conta(id); 
ALTER TABLE cidade ADD CONSTRAINT fk_cidade_1 FOREIGN KEY (estado_id) references estado(id); 
ALTER TABLE clinica ADD CONSTRAINT fk_clinica_1 FOREIGN KEY (system_unit_id) references system_unit(id); 
ALTER TABLE clinica ADD CONSTRAINT fk_clinica_2 FOREIGN KEY (cidade_id) references cidade(id); 
ALTER TABLE clinica_convenio ADD CONSTRAINT fk_clinica_convenio_2 FOREIGN KEY (clinica_id) references clinica(id); 
ALTER TABLE clinica_convenio ADD CONSTRAINT fk_clinica_convenio_1 FOREIGN KEY (convenio_id) references convenio(id); 
ALTER TABLE conta ADD CONSTRAINT fk_conta_2 FOREIGN KEY (tipo_conta_id) references tipo_conta(id); 
ALTER TABLE conta ADD CONSTRAINT fk_conta_3 FOREIGN KEY (pessoa_id) references pessoa(id); 
ALTER TABLE conta ADD CONSTRAINT fk_conta_4 FOREIGN KEY (atendimento_id) references atendimento(id); 
ALTER TABLE conta ADD CONSTRAINT fk_conta_5 FOREIGN KEY (clinica_id) references clinica(id); 
ALTER TABLE conta ADD CONSTRAINT fk_conta_1 FOREIGN KEY (categoria_conta_id) references categoria_conta(id); 
ALTER TABLE documento ADD CONSTRAINT fk_documento_1 FOREIGN KEY (tipo_documento_id) references tipo_documento(id); 
ALTER TABLE documento ADD CONSTRAINT fk_documento_2 FOREIGN KEY (atendimento_id) references atendimento(id); 
ALTER TABLE documento ADD CONSTRAINT fk_documento_3 FOREIGN KEY (procedimento_id) references procedimento(id); 
ALTER TABLE email_config ADD CONSTRAINT fk_email_config_1 FOREIGN KEY (clinica_id) references clinica(id); 
ALTER TABLE estado_agendamento ADD CONSTRAINT fk_estado_agendamento_1 FOREIGN KEY (agendamento_id) references agendamento(id); 
ALTER TABLE estado_agendamento ADD CONSTRAINT fk_estado_agendamento_2 FOREIGN KEY (estado_agenda_id) references estado_agenda(id); 
ALTER TABLE estado_agendamento ADD CONSTRAINT fk_estado_agendamento_3 FOREIGN KEY (system_users_id) references system_users(id); 
ALTER TABLE exame_atendimento ADD CONSTRAINT fk_exame_atendimento_1 FOREIGN KEY (atendimento_id) references atendimento(id); 
ALTER TABLE exame_atendimento ADD CONSTRAINT fk_exame_atendimento_2 FOREIGN KEY (exame_id) references exame(id); 
ALTER TABLE lancamento ADD CONSTRAINT fk_lancamento_1 FOREIGN KEY (conta_id) references conta(id); 
ALTER TABLE lancamento ADD CONSTRAINT fk_lancamento_2 FOREIGN KEY (tipo_pagamento_id) references tipo_pagamento(id); 
ALTER TABLE material ADD CONSTRAINT fk_material_1 FOREIGN KEY (unidade_medida_id) references unidade_medida(id); 
ALTER TABLE medicamento ADD CONSTRAINT fk_medicamento_1 FOREIGN KEY (prescricao_id) references prescricao(id); 
ALTER TABLE mensagem ADD CONSTRAINT fk_message_1 FOREIGN KEY (agendamento_id) references agendamento(id); 
ALTER TABLE mensagem ADD CONSTRAINT fk_message_2 FOREIGN KEY (template_clinica_id) references template_clinica(id); 
ALTER TABLE mensagem ADD CONSTRAINT fk_message_3 FOREIGN KEY (system_user_id) references system_users(id); 
ALTER TABLE mensagem_acao ADD CONSTRAINT fk_mensagem_acao_1 FOREIGN KEY (mensagem_id) references mensagem(id); 
ALTER TABLE movimentacao ADD CONSTRAINT fk_movimentacao_1 FOREIGN KEY (material_id) references material(id); 
ALTER TABLE movimentacao ADD CONSTRAINT fk_movimentacao_2 FOREIGN KEY (system_user_id) references system_users(id); 
ALTER TABLE pessoa ADD CONSTRAINT fk_pessoa_1 FOREIGN KEY (system_users_id) references system_users(id); 
ALTER TABLE pessoa_endereco ADD CONSTRAINT fk_pessoa_endereco_1 FOREIGN KEY (pessoa_id) references pessoa(id); 
ALTER TABLE pessoa_endereco ADD CONSTRAINT fk_pessoa_endereco_2 FOREIGN KEY (cidade_id) references cidade(id); 
ALTER TABLE pessoa_especialidade ADD CONSTRAINT fk_pessoa_especialidade_1 FOREIGN KEY (pessoa_id) references pessoa(id); 
ALTER TABLE pessoa_especialidade ADD CONSTRAINT fk_pessoa_especialidade_2 FOREIGN KEY (especialidade_id) references especialidade(id); 
ALTER TABLE pessoa_grupo ADD CONSTRAINT fk_pessoa_grupo_1 FOREIGN KEY (pessoa_id) references pessoa(id); 
ALTER TABLE pessoa_grupo ADD CONSTRAINT fk_pessoa_grupo_2 FOREIGN KEY (grupo_id) references grupo(id); 
ALTER TABLE prescricao ADD CONSTRAINT fk_prescricao_1 FOREIGN KEY (atendimento_id) references atendimento(id); 
ALTER TABLE procedimento_material ADD CONSTRAINT fk_procedimento_material_1 FOREIGN KEY (procedimento_id) references procedimento(id); 
ALTER TABLE procedimento_material ADD CONSTRAINT fk_procedimento_material_2 FOREIGN KEY (material_id) references material(id); 
ALTER TABLE procedimento_preco ADD CONSTRAINT fk_procedimento_preco_1 FOREIGN KEY (procedimento_id) references procedimento(id); 
ALTER TABLE procedimento_preco ADD CONSTRAINT fk_procedimento_preco_2 FOREIGN KEY (convenio_id) references convenio(id); 
ALTER TABLE questao ADD CONSTRAINT fk_questao_1 FOREIGN KEY (formulario_id) references formulario(id); 
ALTER TABLE resposta ADD CONSTRAINT fk_resposta_2 FOREIGN KEY (resposta_formulario_id) references resposta_formulario(id); 
ALTER TABLE resposta ADD CONSTRAINT fk_resposta_1 FOREIGN KEY (questao_id) references questao(id); 
ALTER TABLE resposta_formulario ADD CONSTRAINT fk_resposta_formulario_1 FOREIGN KEY (formulario_id) references formulario(id); 
ALTER TABLE resposta_formulario ADD CONSTRAINT fk_resposta_formulario_2 FOREIGN KEY (atendimento_id) references atendimento(id); 
ALTER TABLE system_group_program ADD CONSTRAINT fk_system_group_program_1 FOREIGN KEY (system_program_id) references system_program(id); 
ALTER TABLE system_group_program ADD CONSTRAINT fk_system_group_program_2 FOREIGN KEY (system_group_id) references system_group(id); 
ALTER TABLE system_user_group ADD CONSTRAINT fk_system_user_group_1 FOREIGN KEY (system_group_id) references system_group(id); 
ALTER TABLE system_user_group ADD CONSTRAINT fk_system_user_group_2 FOREIGN KEY (system_user_id) references system_users(id); 
ALTER TABLE system_user_program ADD CONSTRAINT fk_system_user_program_1 FOREIGN KEY (system_program_id) references system_program(id); 
ALTER TABLE system_user_program ADD CONSTRAINT fk_system_user_program_2 FOREIGN KEY (system_user_id) references system_users(id); 
ALTER TABLE system_users ADD CONSTRAINT fk_system_user_1 FOREIGN KEY (system_unit_id) references system_unit(id); 
ALTER TABLE system_users ADD CONSTRAINT fk_system_user_2 FOREIGN KEY (frontpage_id) references system_program(id); 
ALTER TABLE system_user_unit ADD CONSTRAINT fk_system_user_unit_1 FOREIGN KEY (system_user_id) references system_users(id); 
ALTER TABLE system_user_unit ADD CONSTRAINT fk_system_user_unit_2 FOREIGN KEY (system_unit_id) references system_unit(id); 
ALTER TABLE template_acao ADD CONSTRAINT fk_template_acao_1 FOREIGN KEY (template_clinica_id) references template_clinica(id); 
ALTER TABLE template_clinica ADD CONSTRAINT fk_template_clinica_1 FOREIGN KEY (clinica_id) references clinica(id); 
ALTER TABLE whatsapp_config ADD CONSTRAINT fk_whatsapp_config_1 FOREIGN KEY (clinica_id) references clinica(id); 

  
