Compare commits

..

33 Commits

Author SHA1 Message Date
Reginaldo
4d60d86743 versão 1.0.17+18 AJUSTE PARA NÃO DEIXAR ESPAÇO DIGITAÇÃO DO LOGIN E CORREÇÃO DO SCROOL DA LISTA DE ATENDIMENTOS. 19/09/2024 2024-09-19 12:02:07 -03:00
Reginaldo
1d3d3941b3 versão 1.0.16+17 AJUSTE DA COMPETENCIA. 10/09/2024 2024-09-10 08:14:38 -03:00
Reginaldo
7dca9d9b4e versão 1.0.15+16 AJUSTE DAS RESTRIÇÕES DE VISITAS PERIODICAS, ENVIO DE PESO E ALTURA E DO LOADING. 30/08/2024 2024-09-02 14:09:13 -03:00
Reginaldo
74b5acdb45 versão 1.0.15+16 AJUSTE DAS RESTRIÇÕES DE VISITAS PERIODICAS, ENVIO DE PESO E ALTURA E DO LOADING. 30/08/2024 2024-08-30 17:05:15 -03:00
Reginaldo
763d101162 versão 1.0.14+15 AJUSTADA A ALTURA DA LISTA DOS PROCEDIMENTOS E DO ACOMPANHAMENTO, E A MENSAGEM DE AVISO DE NÃO SALVAR QUANDO ESTIVER EM EDIÇÃO. 29/08/2024 2024-08-29 09:11:31 -03:00
Reginaldo
9e63828175 versão 1.0.13+14 ajustar para fora de area 1, dentro da area 0 2024-08-28 12:20:24 -03:00
Reginaldo
0ef16f6119 versão 1.0.13+14 edicao da visita_domiciliar_tela.dart 2024-08-28 11:58:08 -03:00
Reginaldo
22e8ae8fd3 versão 1.0.13+14 edicao da visita_domiciliar_tela.dart 2024-08-28 11:57:49 -03:00
Reginaldo
ce2a1cf4d1 versão 1.0.13+14 state do salvar alterações de cadastro do cidadaos, e edicao do atendimento_domiciliar_tela.dart 2024-08-27 21:36:28 -03:00
Reginaldo
48a5a779bf versão 1.0.12+13 AJUSTE DE ID E DESCRIÇÃO DE AREA E MICROAREA, AJUSTE DA MENSAGEM DADOS SALVOS DA EDIÇÃO DO PACIENTE. 2024-08-26 16:37:01 -03:00
Reginaldo
612eb9da02 AJUSTES DA VERSÃO 2024-08-23 15:51:57 -03:00
Reginaldo
9bdc574b55 ajustes cidadao fora de area, e ajustes para não exibir microarea null 2024-08-23 15:42:11 -03:00
Reginaldo
5b2919d292 ajustes do post e campos para o envio para a api 2024-08-22 16:13:00 -03:00
Reginaldo
da45452c89 na tela visita_domiciliar_tela.dart não é mais obrigatório o campo procedimento. 2024-08-15 16:12:57 -03:00
Reginaldo
6c770ef81c ajuste android para subir nova versão 1.0.7 2024-08-12 19:40:22 -03:00
Reginaldo
58fcb66022 correção visita_domiciliar_tela.dart, register_citizen_screen.dart e register_individual_screen.dart 2024-03-18 22:16:02 -03:00
Reginaldo
f5abac7a70 correção no registro de novo cidadão na tela register_citizen_screen.dart 2024-03-14 22:09:38 -03:00
Reginaldo
e45e70f1e4 correção no registro de novo cidadão na tela register_citizen_screen.dart 2024-03-14 22:08:17 -03:00
Reginaldo
0cfe4e747b inclusão dos paises no cadastro cidadão 2024-02-19 15:27:03 -03:00
Reginaldo
2e00b96a57 no para inclusão dos paises 2024-02-16 17:19:59 -03:00
Reginaldo
51711e689b ajuste no cbo, pesquisa e validação do home_visit_screen.dart 2024-02-12 17:01:57 -03:00
Reginaldo
8cf5569840 ajustes de inputs com apenas numeros, mascaras, textos 2024-02-09 16:14:44 -03:00
Reginaldo
a94bff8ebd ajustes para salvar dados do cadastro de renda total, emprestimo, veiculo e financiamento. 2024-02-08 17:58:09 -03:00
Reginaldo
80ea18c486 ajustes para exibir e salvos dados no cadastro individual e visita domiciliar 2024-02-06 15:53:23 -03:00
Reginaldo
dd5a718083 ajustes em diversos para exibir o calendário BR, ajuste para cadastro individual 2024-02-05 15:34:32 -03:00
Reginaldo
2450a76f4b ajustes em diversos pontos do app para receber o username, e ajustar para exibir apenas as telas que realmente será utilizado no app. 2024-02-01 17:01:08 -03:00
Reginaldo
cfdfb316f8 ajustes no sigtap e visita domiciliar 2024-01-31 16:38:18 -03:00
Reginaldo
c9513ff6fd alteração no navigator após a limpeza do app 2023-09-27 12:12:29 -03:00
Reginaldo
e13f73a556 alteração no navigator após a limpeza do app 2023-09-27 12:11:07 -03:00
Reginaldo
5f82282c78 versão da api para 21 versão minima para o android 7 2023-09-11 12:02:07 -03:00
Reginaldo
afb08a2363 alteração dos icones e do nome do app 2023-09-04 18:14:46 -03:00
Reginaldo
3bb0eb0f29 ajuste do list view 2023-09-04 16:59:07 -03:00
Reginaldo
857d07f053 ajuste do list view 2023-09-04 16:58:12 -03:00
106 changed files with 4838 additions and 1823 deletions

View File

@@ -1,11 +1,11 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled.
# This file should be version controlled and should not be manually edited.
version:
revision: 135454af32477f815a7525073027a3ff9eff1bfd
channel: stable
revision: "761747bfc538b5af34aa0d3fac380f1bc331ec49"
channel: "stable"
project_type: app
@@ -13,26 +13,26 @@ project_type: app
migration:
platforms:
- platform: root
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- platform: android
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- platform: ios
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- platform: linux
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- platform: macos
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- platform: web
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- platform: windows
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
# User provided section

View File

@@ -1,75 +1,64 @@
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
plugins {
id "com.android.application"
id "kotlin-android"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
def localProperties = new Properties()
def localPropertiesFile = rootProject.file("local.properties")
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader("UTF-8") { reader ->
localProperties.load(reader)
}
}
def flutterVersionCode = localProperties.getProperty("flutter.versionCode")
if (flutterVersionCode == null) {
flutterVersionCode = "1"
}
def flutterVersionName = localProperties.getProperty("flutter.versionName")
if (flutterVersionName == null) {
flutterVersionName = "1.0"
}
android {
compileSdkVersion 33
ndkVersion flutter.ndkVersion
namespace = "com.ab.rkm.rkm"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.ab.rkm.rkm"
minSdkVersion 19
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "com.ab.rkm.rkm"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdk = 17
targetSdk = flutter.targetSdkVersion
versionCode = flutterVersionCode.toInteger()
versionName = flutterVersionName
}
signingConfigs {
debug {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
minifyEnabled true
@@ -88,9 +77,8 @@ android {
}
flutter {
source '../..'
source = "../.."
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

View File

@@ -1,5 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ab.rkm.rkm">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#B7E0FD</color>
</resources>

View File

@@ -1,15 +1,15 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ab.rkm.rkm">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:usesCleartextTraffic="true"
android:label="RKM AB"
package="com.ab.rkm.rkmmobile">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:label="RKMAB 2.0"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:taskAffinity=""
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
@@ -33,4 +33,15 @@
android:name="flutterEmbedding"
android:value="2" />
</application>
<!-- Required to query activities that can process text, see:
https://developer.android.com/training/package-visibility and
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
<queries>
<intent>
<action android:name="android.intent.action.PROCESS_TEXT"/>
<data android:mimeType="text/plain"/>
</intent>
</queries>
</manifest>

View File

@@ -0,0 +1,5 @@
package com.ab.rkm.rkmmobile
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity()

View File

@@ -2,5 +2,4 @@ package com.ab.rkm.rkm
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}
class MainActivity: FlutterActivity()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,5 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ab.rkm.rkm">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.

View File

@@ -1,20 +1,32 @@
buildscript {
ext.kotlin_version = '1.6.10'
repositories {
google()
maven {
url 'https://maven.google.com/'
name 'Google'
}
maven {
url 'https://mvnrepository.com/artifact/com.android.tools.lint/lint-gradle-api'
}
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.3'
classpath 'com.android.tools.build:gradle:7.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
mavenCentral()
maven {
url 'https://maven.google.com/'
name 'Google'
}
jcenter()
maven {
url 'https://mvnrepository.com/artifact/com.android.tools.lint/lint-gradle-api'
}
}
}

View File

@@ -1,4 +1,4 @@
#org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
android.suppressUnsupportedCompileSdk=33

View File

@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-7.2-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip

View File

@@ -1,11 +1,25 @@
include ':app'
pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}()
def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
def properties = new Properties()
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
assert localPropertiesFile.exists()
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.3.0" apply false
id "org.jetbrains.kotlin.android" version "1.7.10" apply false
}
include ":app"

View File

@@ -0,0 +1,12 @@
import Flutter
import UIKit
import XCTest
class RunnerTests: XCTestCase {
func testExample() {
// If you add code to the Runner application, consider adding tests here.
// See https://developer.apple.com/documentation/xctest for more information about using XCTest.
}
}

View File

@@ -1,20 +1,21 @@
import 'package:flutter/material.dart';
import 'package:rkm/models/city_load_model.dart';
import 'package:rkm/models/drop_down_data_model.dart';
import '../models/check_model.dart';
import '../models/check_proced_sia_model.dart';
import '../models/pais_modelo.dart';
import 'color_palette.dart';
class ConstVariable{
double radiusBorderInput = 5;
EdgeInsetsGeometry marginHightInput = EdgeInsets.symmetric(vertical: 5);
EdgeInsetsGeometry paddingWidth = EdgeInsets.symmetric(horizontal: 10);
IconThemeData iconThemeDataDefault = IconThemeData(color: Colors.white);
double fontSizeInput = 15;
double fontSizeTitleAppBar = 20;
List<String> RGUF = ['AC','AI','AL','AM','AN','AP','AS','BA','BY','CA','CB','CE','CH','CN','CO','DC','DF','ES','GD','GO','GU',
'HU','IL','LA','LE','LI','LO','LT','MA','MG','MO','MS','MT','NB','NE','NW','NT','NY','OH','OU','PA','PB',
'PE','PI','PO','PR','QH','RJ','RM','RN','RO','RR','RN','RO','RR','RS','SC','SE','SF','SJ','SP','TA','TO',
'VC','XX','ZU','-','--',''];
List<String> RGUF = ['AC','AL','AP','AM','BA','CE','DF','ES','GO','MA','MT','MS','MG','PA','PB','PR','PE','PI','RJ','RN','RS','RO','RR','SC','SP','SE','TO','--'];
List<String> itensProceduresStart = [
'ATENDIMENTO INDIVIDUAL',
'ATEND. INDIVIDUAL',
'VISTA DOMICILIAR'
];
List<String> listNationality =[
@@ -72,87 +73,111 @@ class ConstVariable{
'VISITA PERIÓDICA'
];
List outrosModel = [
'EGRESSO DE INTERNAÇÃO',
'CONVITE ATIVIDADES COLETIVAS/CAMPANHAS DE SAÚDE',
'ORIENTAÇÃO/PREVENÇÃO',
'OUTROS',
List<CheckModel> outrosModel = [
CheckModel(cod: 25, subtitle: 'EGRESSO DE INTERNAÇÃO'),
CheckModel(cod: 27, subtitle: 'CONVITE ATIVIDADES COLETIVAS/CAMPANHAS DE SAÚDE'),
CheckModel(cod: 31, subtitle: 'ORIENTAÇÃO/PREVENÇÃO'),
CheckModel(cod: 28, subtitle: 'OUTROS'),
];
List tipoAcompanhamentoModel = [
'GESTANTE',
'PUÉRPERA',
'RECÉM-NASCIDO',
'CRIANÇA',
'PESSOA COM DESNUTRIÇÃO',
'PESSOA EM REABILITAÇÃO OU COM DEFICIÊNCIA',
'PESSOA COM HIPERTENSÃO',
'PESSOA COM ASMA',
'PESSOA COM DPOC/ENFISEMA',
'PESSOA COM CÂNCER',
'PESSOA COM OUTRAS DOENÇAS CRÔNICAS',
'PESSOA COM HANSENÍASE',
'PESSOA COM TUBERCULOSE',
'SINTOMÁTICOS RESPIRATÓRIOS',
'TABAGISTA',
'DOMICILIADOS/ACAMADOS',
'CONDIÇÕES DE VULNERABILIDADE SOCIAL',
'CONDIÇÃO DO BOLSA FAMÍLIA',
'SAÚDE MENTAL',
'USUÁRIO DE ÁLCOOL',
'USUÁRIO DE OUTRAS DROGAS',
List <CheckModel>tipoAcompanhamentoModel = [
CheckModel(cod: 5, subtitle: 'GESTANTE'),
CheckModel(cod: 6, subtitle: 'PUÉRPERA'),
CheckModel(cod: 7, subtitle: 'RECÉM-NASCIDO'),
CheckModel(cod: 8, subtitle: 'CRIANÇA'),
CheckModel(cod: 9, subtitle: 'PESSOA COM DESNUTRIÇÃO'),
CheckModel(cod: 10, subtitle: 'PESSOA EM REABILITAÇÃO OU COM DEFICIÊNCIA'),
CheckModel(cod: 11, subtitle: 'PESSOA COM HIPERTENSÃO'),
CheckModel(cod: 12, subtitle: 'PESSOA COM DIABETES'),
CheckModel(cod: 13, subtitle: 'PESSOA COM ASMA'),
CheckModel(cod: 14, subtitle: 'PESSOA COM DPOC/ENFISEMA'),
CheckModel(cod: 15, subtitle: 'PESSOA COM CÂNCER'),
CheckModel(cod: 16, subtitle: 'PESSOA COM OUTRAS DOENÇAS CRÔNICAS'),
CheckModel(cod: 17, subtitle: 'PESSOA COM HANSENÍASE'),
CheckModel(cod: 18, subtitle: 'PESSOA COM TUBERCULOSE'),
CheckModel(cod: 32, subtitle: 'SINTOMÁTICOS RESPIRATÓRIOS'),
CheckModel(cod: 33, subtitle: 'TABAGISTA'),
CheckModel(cod: 19, subtitle: 'DOMICILIADOS/ACAMADOS'),
CheckModel(cod: 20, subtitle: 'CONDIÇÕES DE VULNERABILIDADE SOCIAL'),
CheckModel(cod: 21, subtitle: 'CONDIÇÃO DO BOLSA FAMÍLIA'),
CheckModel(cod: 22, subtitle: 'SAÚDE MENTAL'),
CheckModel(cod: 23, subtitle: 'USUÁRIO DE ÁLCOOL'),
CheckModel(cod: 24, subtitle: 'USUÁRIO DE OUTRAS DROGAS'),
];
List serviceHomeCheckConditionlist = [
'ACAMADO',
'DOMICILIADO',
'ÚLCERAS / FERIDAS (GRAU III OU IV)',
'ACOMPANHAMENTO NUTRICIONAL',
'USO DE SONDA NASO-GRÁSTRICA - SNG',
'USO DE SONDA NASO-ENTERAL - SNE',
'USO DE GASTRONOMIA',
'USO DE COLOSTOMIA',
'USO DE CISTOSTOMIA',
'USO DE SONDA VESICAL DE DEMORA - SVD',
'ACOMPANHAMENTO PRÉ-OPERATÓRIO',
'ACOMPANHAMENTO PÓS-OPERATÓRIO',
'ACOMP.NUTRICIONAL',
'ACOMP.PÓS-OPERATÓRIO',
'ACOMP.PRÉ-OPERATÓRIO',
'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE',
'REABILITAÇÃO DOMICILIAR',
'CUIDADOS PALIATIVOS NÃO ONCOLÓGICO',
'CUIDADOS PALIATIVOS ONCOLÓGICO',
'CUIDADOS PALIATIVOS NÃO-ONCOLÓGICO',
'OXIGENOTERAPIA DOMICILIAR',
'USO DE TRAQUEOSTOMIA',
'USO DE ASPIRADOR DE VIAS AÉRIAS PARA HIGIENE BUCAL',
'SUPORTE VENTILATÓRIO NÃO INVASICO - CPAP',
'SUPORTE VENTILATÓRIO NÃO INVASICO - BIPAP',
'DIÁLISE PERITONIAL',
'PARACENTESE',
'DOMICILIADO',
'MEDICAÇÃO PARENTERAL',
'OXIGENOTERAPIA DOMICILIAR',
'PARACENTESE',
'REABILITAÇÃO DOMICILIAR',
'SUPORTE VENTILATÓRIO NÃO INVASIVO - BIPAP',
'SUPORTE VENTILATÓRIO NÃO INVASIVO - CPAP',
'ÚLCERAS / FERIDAS (GRAU III OU IV)',
'USO DE ASPIRADOR DE VIAS AÉRIAS PARA HIGIÊNE BRÔNQUICA',
'USO DE CISTOSTOMIA',
'USO DE COLOSTOMIA',
'USO DE GASTROSTOMIA',
'USO DE SONDA NASOENTERAL - SNE',
'USO DE SONDA NASOGÁSTRICA - SNG',
'USO DE SONDA VESICAL DE DEMORA - SVD',
'USO DE TRAQUEOSTOMIA',
];
List serviceHomeCheckProclist = [
'ACOMPANHAMENTO DE PACIENTE EM REABILITAÇÃO',
'ENEMA',
'ANTIBIOTICOTERAPIA PARENTERAL',
'OXIGENOTERAPIA',
'ATEND./ ACOMP. PACIENTE EM REABILITAÇÃO DO DESENVOLVIMENTO NEUROPSICOMOTOR',
'RETIRADA DE PONTOS DE CIRURGIAS BÁSICAS',
'ATEND. FISIOTERAPÊUTICO PACIENTE C/ TRANST. RESP S/ COMPLICAÇÕES SISTÊMICAS',
'SONDAGEM GÁSTRICA',
'ATENDIMENTO MÉDICO COM FINALIDADE DE ATESTAR ÓBITO',
'TERAPIA DE REIDRATAÇÃO ORAL',
'ATENDIMENTO/ACOMPANHAMENTO EM REABILITAÇÃO NAS MÚLTIPLS DEFICIÊNCIAS',
'TERAPIA DE REIDRATAÇÃO PARENTAL',
'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE',
'REABILITAÇÃO DOMICILIAR',
'CATETERISMO VESICAL DE ALÍVIO',
'TERAPIA FONOAUDIOLÓGICA INDIVIDUAL',
'CATETERISMO VESICAL DE DEMORA',
'TRATAMENTO DE TRAUMATISMOS DE LOCALIZAÇÃO ESPECIF/NÃO ESPECIFICADA',
'COLETA DE MATERIAL PARA EXAME LABORATORIAL',
'TRATAMENTO EM REABILITAÇÃO',
'CUIDADOS COM ESTOMAS',
'CUIDADOS COM TRAQUEOSTOMIA'
// List serviceHomeCheckProclist = [
// 'ACOMP.DE PACIENTE EM REABILITAÇÃO EM COMUNICAÇÃO ALTERNATIVA',
// 'ADAPTAÇÃO AO USO DE ÓRTESE / PRÓTESE',
// 'ANTIBIOTICOTERAPIA PARENTERAL',
// 'ATEND. FISIOTERAPÊUTICO PACIENTE C/ TRANST. RESP S/ COMPLICAÇÕES SISTÊMICAS',
// 'ATEND. MÉDICO COM FINALIDADE DE ATESTAR ÓBITO',
// 'ATEND./ ACOMP. PACIENTE EM REABILITAÇÃO DO DESENVOLVIMENTO NEUROPSICOMOTOR',
// 'ATEND./ACOMP.EM REABILITAÇÃO NAS MÚLTIPLAS DEFICIÊNCIAS',
// 'CATETERISMO VESICAL DE ALÍVIO',
// 'CATETERISMO VESICAL DE DEMORA',
// 'COLETA DE MATERIAL PARA EXAME LABORATORIAL',
// 'CUIDADOS COM ESTOMAS',
// 'CUIDADOS COM TRAQUEOSTOMIA',
// 'ENEMA',
// 'OXIGENOTERAPIA',
// 'REABILITAÇÃO DOMICILIAR',
// 'RETIRADA DE PONTOS DE CIRURGIAS BÁSICAS',
// 'SONDAGEM GÁSTRICA',
// 'TERAPIA DE REIDRATAÇÃO ORAL',
// 'TERAPIA DE REIDRATAÇÃO PARENTERAL',
// 'TERAPIA FONOAUDIOLÓGICA INDIVIDUAL',
// 'TRATAMENTO DE TRAUMATISMOS DE LOCALIZAÇÃO ESPECIFICADA/NÃO ESPECIFICADA',
// 'TRATAMENTO EM REABILITAÇÃO',
// ];
List<CheckProcedSiaModel> serviceHomeCheckProclist = [
CheckProcedSiaModel(COD_SIA: 1, DESCRICAO_PROCEDIMENTO:'ACOMP.DE PACIENTE EM REABILITAÇÃO EM COMUNICAÇÃO ALTERNATIVA'),
CheckProcedSiaModel(COD_SIA: 3, DESCRICAO_PROCEDIMENTO: 'ANTIBIOTICOTERAPIA PARENTERAL'),
CheckProcedSiaModel(COD_SIA: 7, DESCRICAO_PROCEDIMENTO:'ATEND. FISIOTERAPÊUTICO PACIENTE C/ TRANST. RESP S/ COMPLICAÇÕES SISTÊMICAS'),
CheckProcedSiaModel(COD_SIA: 9, DESCRICAO_PROCEDIMENTO:'ATEND. MÉDICO COM FINALIDADE DE ATESTAR ÓBITO'),
CheckProcedSiaModel(COD_SIA: 5, DESCRICAO_PROCEDIMENTO:'ATEND./ ACOMP. PACIENTE EM REABILITAÇÃO DO DESENVOLVIMENTO NEUROPSICOMOTOR'),
CheckProcedSiaModel(COD_SIA: 11, DESCRICAO_PROCEDIMENTO:'ATEND./ACOMP.EM REABILITAÇÃO NAS MÚLTIPLAS DEFICIÊNCIAS'),
CheckProcedSiaModel(COD_SIA: 13, DESCRICAO_PROCEDIMENTO:'CATETERISMO VESICAL DE ALÍVIO'),
CheckProcedSiaModel(COD_SIA: 15, DESCRICAO_PROCEDIMENTO:'CATETERISMO VESICAL DE DEMORA'),
CheckProcedSiaModel(COD_SIA: 17, DESCRICAO_PROCEDIMENTO:'COLETA DE MATERIAL PARA EXAME LABORATORIAL'),
CheckProcedSiaModel(COD_SIA: 19, DESCRICAO_PROCEDIMENTO:'CUIDADOS COM ESTOMAS'),
CheckProcedSiaModel(COD_SIA: 20, DESCRICAO_PROCEDIMENTO:'CUIDADOS COM TRAQUEOSTOMIA'),
CheckProcedSiaModel(COD_SIA: 2, DESCRICAO_PROCEDIMENTO: 'ENEMA'),
CheckProcedSiaModel(COD_SIA: 4, DESCRICAO_PROCEDIMENTO:'OXIGENOTERAPIA'),
CheckProcedSiaModel(COD_SIA: 6, DESCRICAO_PROCEDIMENTO:'RETIRADA DE PONTOS DE CIRURGIAS BÁSICAS'),
CheckProcedSiaModel(COD_SIA: 8, DESCRICAO_PROCEDIMENTO:'SONDAGEM GÁSTRICA'),
CheckProcedSiaModel(COD_SIA: 10, DESCRICAO_PROCEDIMENTO:'TERAPIA DE REIDRATAÇÃO ORAL'),
CheckProcedSiaModel(COD_SIA: 12, DESCRICAO_PROCEDIMENTO:'TERAPIA DE REIDRATAÇÃO PARENTERAL'),
CheckProcedSiaModel(COD_SIA: 14, DESCRICAO_PROCEDIMENTO:'TERAPIA FONOAUDIOLÓGICA INDIVIDUAL'),
CheckProcedSiaModel(COD_SIA: 16, DESCRICAO_PROCEDIMENTO:'TRATAMENTO DE TRAUMATISMOS DE LOCALIZAÇÃO ESPECIFICADA/NÃO ESPECIFICADA'),
CheckProcedSiaModel(COD_SIA: 18, DESCRICAO_PROCEDIMENTO:'TRATAMENTO EM REABILITAÇÃO'),
];
List<DropDownDataModel> listServicePlace = [
@@ -167,12 +192,12 @@ class ConstVariable{
DropDownDataModel(cod: 9,title: 'UNIDADE PRISIONAL OU CONGÊNERES'),
DropDownDataModel(cod: 10,title: 'UNIDADE SOCIOEDUCATIVA'),
DropDownDataModel(cod: 11,title: 'HOSPITAL'),
DropDownDataModel(cod: 12,title: 'UNIDADE DE PRONTO ATENDIMENTO'),
DropDownDataModel(cod: 12,title: 'UNIDADE DE PRONTO ATEND.'),
DropDownDataModel(cod: 13,title: 'CACON/UNACON'),
];
List<DropDownDataModel> typeService = [
DropDownDataModel(cod: 7,title: 'ATENDIMENTO PROGRAMADO'),
DropDownDataModel(cod: 8,title: 'ATENDIMENTO NÃO PROGRAMADO'),
DropDownDataModel(cod: 7,title: 'ATEND. PROGRAMADO'),
DropDownDataModel(cod: 8,title: 'ATEND. NÃO PROGRAMADO'),
DropDownDataModel(cod: 9,title: 'VISITA DOMICILIAR PÓS ÓBITO'),
];
List<DropDownDataModel> typeModelService = [
@@ -190,7 +215,7 @@ class ConstVariable{
'CONSULTA AGENDADA',
'DEMANDA ESPONTÂNEA - ESCUTA INICIAL/ORIENTAÇÃO',
'DEMANDA ESPONTÂNEA - CONSULTA NO DIA',
'DEMANDA ESPONTÂNEA - ATENDIMENTO DE EMERGÊNCIA',
'DEMANDA ESPONTÂNEA - ATEND. DE EMERGÊNCIA',
];
List<DropDownDataModel> listBreed = [
DropDownDataModel(cod: 4, title: 'AMARELA'),
@@ -261,17 +286,17 @@ class ConstVariable{
List<DropDownDataModel> listTypeHome = [
DropDownDataModel(cod: 1,title: 'DOMICÍLIO'),
DropDownDataModel(cod: 2,title: 'COMÉRCIO'),
DropDownDataModel(cod: 3,title: 'TERRENO BALDIO'),
DropDownDataModel(cod: 4,title: 'PONTO ESTRATÉGICO'),
DropDownDataModel(cod: 5,title: 'ESCOLA'),
DropDownDataModel(cod: 6,title: 'CRECHE'),
// DropDownDataModel(cod: 2,title: 'COMÉRCIO'),
// DropDownDataModel(cod: 3,title: 'TERRENO BALDIO'),
// DropDownDataModel(cod: 4,title: 'PONTO ESTRATÉGICO'),
// DropDownDataModel(cod: 5,title: 'ESCOLA'),
// DropDownDataModel(cod: 6,title: 'CRECHE'),
DropDownDataModel(cod: 7,title: 'ABRIGO'),
DropDownDataModel(cod: 8,title: 'INSTITUIÇÃO DE LONGA PERMANÊNCIA PARA IDOSOS'),
DropDownDataModel(cod: 9,title: 'UNIDADE PRISIONAL'),
DropDownDataModel(cod: 10,title: 'UNIDADE DE MEDIDA SOCIOEDUCATIVA'),
DropDownDataModel(cod: 11,title: 'DELEGACIA'),
DropDownDataModel(cod: 12,title: 'ESTABELECIMENTO RELIGIOSO'),
// DropDownDataModel(cod: 12,title: 'ESTABELECIMENTO RELIGIOSO'),
DropDownDataModel(cod: 99,title: 'OUTROS'),
];
@@ -464,7 +489,7 @@ class ConstVariable{
DropDownDataModel(cod: 4, title: 'AFONICA'),
DropDownDataModel(cod: 5, title: 'AUDITIVA'),
DropDownDataModel(cod:10, title: 'FISICA'),
DropDownDataModel(cod: 2, title: 'IGNORADO'),
// DropDownDataModel(cod: 2, title: 'IGNORADO'),
DropDownDataModel(cod: 6, title: 'INTELECTUAL'),
DropDownDataModel(cod: 7, title: 'MOTORA'),
DropDownDataModel(cod: 8, title: 'MULTIPLA'),
@@ -498,6 +523,7 @@ class ConstVariable{
CityLoadModel(codCity: 3473, nameCityApi: 'francodarocha', nameCityFront: 'Franco da Rocha', codState: 'SP', codCityIbge: 351640),
CityLoadModel(codCity: 3514, nameCityApi: 'igaracudotiete', nameCityFront: 'Igaraçu do Tietê', codState: 'SP', codCityIbge: 352000),
CityLoadModel(codCity: 3531, nameCityApi: 'iracemapolis', nameCityFront: 'Iracemápolis', codState: 'SP', codCityIbge: 352140),
CityLoadModel(codCity: 3542, nameCityApi: 'itapeva', nameCityFront: 'Itapeva', codState: 'SP', codCityIbge: 352240),
CityLoadModel(codCity: 3546, nameCityApi: 'itapolis', nameCityFront: 'Itápolis', codState: 'SP', codCityIbge: 352270),
CityLoadModel(codCity: 3555, nameCityApi: 'itirapina', nameCityFront: 'Itirapina', codState: 'SP', codCityIbge: 352360),
CityLoadModel(codCity: 3560, nameCityApi: 'ituverava', nameCityFront: 'Ituverava', codState: 'SP', codCityIbge: 352410),
@@ -516,6 +542,249 @@ class ConstVariable{
CityLoadModel(codCity: 3853, nameCityApi: 'ssgrama', nameCityFront: 'São Sebastião da Grama', codState: 'SP', codCityIbge: 355080),
CityLoadModel(codCity: 3882, nameCityApi: 'tapiratiba', nameCityFront: 'Tapiratiba', codState: 'SP', codCityIbge: 355360),
];
List<PaisModelo> paises = [
PaisModelo (ID_PAIS_RESID:1,PAIS: 'AFEGANISTÃO'),
PaisModelo (ID_PAIS_RESID: 2,PAIS: 'ALBÂNIA'),
PaisModelo (ID_PAIS_RESID: 3,PAIS: 'ARGÉLIA'),
PaisModelo (ID_PAIS_RESID: 4,PAIS: 'SAMOA AMERICANA'),
PaisModelo (ID_PAIS_RESID: 5,PAIS: 'ANDORRA'),
PaisModelo (ID_PAIS_RESID: 6,PAIS: 'ANGOLA'),
PaisModelo (ID_PAIS_RESID: 7,PAIS: 'ANGUILLA'),
PaisModelo (ID_PAIS_RESID: 8,PAIS: 'ANTÁRCTIDA'),
PaisModelo (ID_PAIS_RESID: 9,PAIS: 'ANTIGUA E BARBUDA'),
PaisModelo (ID_PAIS_RESID: 10,PAIS: 'ARGENTINA'),
PaisModelo (ID_PAIS_RESID: 11,PAIS: 'ARMÊNIA'),
PaisModelo (ID_PAIS_RESID: 12,PAIS: 'ARUBA'),
PaisModelo (ID_PAIS_RESID: 14,PAIS: 'AUSTRÁLIA'),
PaisModelo (ID_PAIS_RESID: 15,PAIS: 'ÁUSTRIA'),
PaisModelo (ID_PAIS_RESID: 16,PAIS: 'AZERBEIJÃO'),
PaisModelo (ID_PAIS_RESID: 17,PAIS: 'BAHAMAS'),
PaisModelo (ID_PAIS_RESID: 18,PAIS: 'BAHREIN'),
PaisModelo (ID_PAIS_RESID: 20,PAIS: 'BANGLADESH'),
PaisModelo (ID_PAIS_RESID: 21, PAIS: 'BARBADOS'),
PaisModelo (ID_PAIS_RESID: 23, PAIS: 'BIELO-RÚSSIA'),
PaisModelo (ID_PAIS_RESID: 24, PAIS: 'BÉLGICA'),
PaisModelo (ID_PAIS_RESID: 25, PAIS: 'BELIZE'),
PaisModelo (ID_PAIS_RESID: 26, PAIS: 'BENIN'),
PaisModelo (ID_PAIS_RESID: 27, PAIS: 'BERMUDA'),
PaisModelo (ID_PAIS_RESID: 28, PAIS: 'BUTÃO'),
PaisModelo (ID_PAIS_RESID: 29, PAIS: 'BOLÍVIA'),
PaisModelo (ID_PAIS_RESID: 30, PAIS: 'BÓSNIA-HERZEGÓVINA'),
PaisModelo (ID_PAIS_RESID: 31, PAIS: 'BOTSWANA'),
PaisModelo (ID_PAIS_RESID: 32, PAIS: 'BOUVET, ILHA'),
PaisModelo (ID_PAIS_RESID: 33, PAIS: 'BRASIL'),
PaisModelo (ID_PAIS_RESID: 34, PAIS: 'TERRITÓRIO BRITÂNICO DO OCEANO ÍNDICO'),
PaisModelo (ID_PAIS_RESID: 35, PAIS: 'VIRGENS BRITÂNICAS, ILHAS'),
PaisModelo (ID_PAIS_RESID: 36, PAIS: 'BRUNEI'),
PaisModelo (ID_PAIS_RESID: 37, PAIS: 'BULGÁRIA'),
PaisModelo (ID_PAIS_RESID: 38, PAIS: 'BURKINA FASSO'),
PaisModelo (ID_PAIS_RESID: 39, PAIS: 'MYANMAR (ANTIGA BIRMÂNIA)'),
PaisModelo (ID_PAIS_RESID: 40, PAIS: 'BURUNDI'),
PaisModelo (ID_PAIS_RESID: 41, PAIS: 'CAMBODJA'),
PaisModelo (ID_PAIS_RESID: 42, PAIS: 'CAMARÕES'),
PaisModelo (ID_PAIS_RESID: 43, PAIS: 'CANADÁ'),
PaisModelo (ID_PAIS_RESID: 44, PAIS: 'CABO VERDE'),
PaisModelo (ID_PAIS_RESID: 45, PAIS: 'CAYMAN, ILHAS'),
PaisModelo (ID_PAIS_RESID: 46, PAIS: 'CENTRO-AFRICANA, REPÚBLICA'),
PaisModelo (ID_PAIS_RESID: 47, PAIS: 'CHADE'),
PaisModelo (ID_PAIS_RESID: 48, PAIS: 'CHILE'),
PaisModelo (ID_PAIS_RESID: 49, PAIS: 'CHINA'),
PaisModelo (ID_PAIS_RESID: 50, PAIS: 'CHRISTMAS, ILHA'),
PaisModelo (ID_PAIS_RESID: 52, PAIS: 'COCOS, ILHAS'),
PaisModelo (ID_PAIS_RESID: 53, PAIS: 'COLÔMBIA'),
PaisModelo (ID_PAIS_RESID: 54, PAIS: 'COMORES'),
PaisModelo (ID_PAIS_RESID: 55, PAIS: 'CONGO, REPÚBLICA DEMOCRÁTICA DO (ANTIGO ZAIRE)'),
PaisModelo (ID_PAIS_RESID: 56, PAIS: 'CONGO, REPÚBLICA DO'),
PaisModelo (ID_PAIS_RESID: 57, PAIS: 'COOK, ILHAS'),
PaisModelo (ID_PAIS_RESID: 59, PAIS: 'COSTA RICA'),
PaisModelo (ID_PAIS_RESID: 60, PAIS: 'COSTA DO MARFIM'),
PaisModelo (ID_PAIS_RESID: 61, PAIS: 'CROÁCIA'),
PaisModelo (ID_PAIS_RESID: 62, PAIS: 'CUBA'),
PaisModelo (ID_PAIS_RESID: 63, PAIS: 'CHIPRE'),
PaisModelo (ID_PAIS_RESID: 64, PAIS: 'TCHECA, REPÚBLICA'),
PaisModelo (ID_PAIS_RESID: 65, PAIS: 'DINAMARCA'),
PaisModelo (ID_PAIS_RESID: 66, PAIS: 'DJIBOUTI'),
PaisModelo (ID_PAIS_RESID: 67, PAIS: 'DOMINICA'),
PaisModelo (ID_PAIS_RESID: 68, PAIS: 'DOMINICANA, REPÚBLICA'),
PaisModelo (ID_PAIS_RESID: 69, PAIS: 'TIMOR-LESTE'),
PaisModelo (ID_PAIS_RESID: 70, PAIS: 'EQUADOR'),
PaisModelo (ID_PAIS_RESID: 71, PAIS: 'EGIPTO'),
PaisModelo (ID_PAIS_RESID: 72, PAIS: 'EL SALVADOR'),
PaisModelo (ID_PAIS_RESID: 73, PAIS: 'GUINÉ EQUATORIAL'),
PaisModelo (ID_PAIS_RESID: 74, PAIS: 'ERITRÉIA'),
PaisModelo (ID_PAIS_RESID: 75, PAIS: 'ESTÓNIA'),
PaisModelo (ID_PAIS_RESID: 76, PAIS: 'ETIÓPIA'),
PaisModelo (ID_PAIS_RESID: 78, PAIS: 'MALVINAS, ILHAS (FALKLAND)'),
PaisModelo (ID_PAIS_RESID: 79, PAIS:'FAROE, ILHAS'),
PaisModelo (ID_PAIS_RESID: 80, PAIS:'FIJI'),
PaisModelo (ID_PAIS_RESID: 81, PAIS:'FINLÂNDIA'),
PaisModelo (ID_PAIS_RESID: 82, PAIS:'FRANÇA'),
PaisModelo (ID_PAIS_RESID: 84, PAIS:'GUIANA FRANCESA'),
PaisModelo (ID_PAIS_RESID: 85, PAIS:'POLINÉSIA FRANCESA'),
PaisModelo (ID_PAIS_RESID: 86, PAIS:'TERRAS AUSTRAIS E ANTÁRTICAS FRANCESAS (TAAF)'),
PaisModelo (ID_PAIS_RESID: 87, PAIS:'GABÃO'),
PaisModelo (ID_PAIS_RESID: 88, PAIS:'GÂMBIA'),
PaisModelo (ID_PAIS_RESID: 90, PAIS:'GEÓRGIA'),
PaisModelo (ID_PAIS_RESID: 91, PAIS:'ALEMANHA'),
PaisModelo (ID_PAIS_RESID: 92, PAIS:'GANA'),
PaisModelo (ID_PAIS_RESID: 93, PAIS:'GIBRALTAR'),
PaisModelo (ID_PAIS_RESID: 95, PAIS:'GRÉCIA'),
PaisModelo (ID_PAIS_RESID: 96, PAIS:'GRONELÂNDIA'),
PaisModelo (ID_PAIS_RESID: 97, PAIS:'GRANADA'),
PaisModelo (ID_PAIS_RESID: 98, PAIS:'GUADELOUPE'),
PaisModelo (ID_PAIS_RESID: 99, PAIS:'GUAM'),
PaisModelo (ID_PAIS_RESID: 100, PAIS: 'GUATEMALA'),
PaisModelo (ID_PAIS_RESID: 102, PAIS: 'GUINÉ-CONACRI'),
PaisModelo (ID_PAIS_RESID: 103, PAIS: 'GUINÉ-BISSAU'),
PaisModelo (ID_PAIS_RESID: 104, PAIS: 'GUIANA'),
PaisModelo (ID_PAIS_RESID: 105, PAIS: 'HAITI'),
PaisModelo (ID_PAIS_RESID: 106, PAIS: 'HEARD E ILHAS MCDONALD, ILHA'),
PaisModelo (ID_PAIS_RESID: 107, PAIS: 'VATICANO'),
PaisModelo (ID_PAIS_RESID: 108, PAIS: 'HONDURAS'),
PaisModelo (ID_PAIS_RESID: 109, PAIS: 'HONG KONG'),
PaisModelo (ID_PAIS_RESID: 111, PAIS: 'HUNGRIA'),
PaisModelo (ID_PAIS_RESID: 112, PAIS: 'ISLÂNDIA'),
PaisModelo (ID_PAIS_RESID: 113, PAIS: 'ÍNDIA'),
PaisModelo (ID_PAIS_RESID: 114, PAIS: 'INDONÉSIA'),
PaisModelo (ID_PAIS_RESID: 115,PAIS: 'IRÃO'),
PaisModelo (ID_PAIS_RESID: 116,PAIS: 'IRAQUE'),
PaisModelo (ID_PAIS_RESID: 117,PAIS: 'IRLANDA'),
PaisModelo (ID_PAIS_RESID: 118,PAIS: 'ISRAEL'),
PaisModelo (ID_PAIS_RESID: 119,PAIS: 'ITÁLIA'),
PaisModelo (ID_PAIS_RESID: 120,PAIS: 'JAMAICA'),
PaisModelo (ID_PAIS_RESID: 122,PAIS: 'JAPÃO'),
PaisModelo (ID_PAIS_RESID: 126,PAIS: 'JORDÂNIA'),
PaisModelo (ID_PAIS_RESID: 128,PAIS: 'CAZAQUISTÃO'),
PaisModelo (ID_PAIS_RESID: 129,PAIS: 'QUÊNIA'),
PaisModelo (ID_PAIS_RESID: 131,PAIS: 'KIRIBATI'),
PaisModelo (ID_PAIS_RESID: 132,PAIS: 'COREIA, REPÚBLICA DEMOCRÁTICA DA (COREIA DO NORTE)'),
PaisModelo (ID_PAIS_RESID: 133,PAIS: 'COREIA DO SUL'),
PaisModelo (ID_PAIS_RESID: 134,PAIS: 'KUWEIT'),
PaisModelo (ID_PAIS_RESID: 135,PAIS: 'QUIRGUISTÃO'),
PaisModelo (ID_PAIS_RESID: 136,PAIS: 'LAOS'),
PaisModelo (ID_PAIS_RESID: 137,PAIS: 'LETÓNIA'),
PaisModelo (ID_PAIS_RESID: 138,PAIS: 'LÍBANO'),
PaisModelo (ID_PAIS_RESID: 139,PAIS: 'LESOTO'),
PaisModelo (ID_PAIS_RESID: 140,PAIS: 'LIBÉRIA'),
PaisModelo (ID_PAIS_RESID: 141,PAIS: 'LÍBIA'),
PaisModelo (ID_PAIS_RESID: 142,PAIS: 'LIECHTENSTEIN'),
PaisModelo (ID_PAIS_RESID: 143,PAIS: 'LITUÂNIA'),
PaisModelo (ID_PAIS_RESID: 144,PAIS: 'LUXEMBURGO'),
PaisModelo (ID_PAIS_RESID: 145,PAIS: 'MACAU'),
PaisModelo (ID_PAIS_RESID: 146,PAIS: 'MACEDÓNIA, REPÚBLICA DA'),
PaisModelo (ID_PAIS_RESID: 147,PAIS: 'MADAGÁSCAR'),
PaisModelo (ID_PAIS_RESID: 148,PAIS: 'MALAWI'),
PaisModelo (ID_PAIS_RESID: 149,PAIS: 'MALÁSIA'),
PaisModelo (ID_PAIS_RESID: 150,PAIS: 'MALDIVAS'),
PaisModelo (ID_PAIS_RESID: 151,PAIS: 'MALI'),
PaisModelo (ID_PAIS_RESID: 152,PAIS: 'MALTA'),
PaisModelo (ID_PAIS_RESID: 154, PAIS: 'MARSHALL, ILHAS'),
PaisModelo (ID_PAIS_RESID: 155, PAIS: 'MARTINICA'),
PaisModelo (ID_PAIS_RESID: 156, PAIS: 'MAURITÂNIA'),
PaisModelo (ID_PAIS_RESID: 157, PAIS: 'MAURÍCIA'),
PaisModelo (ID_PAIS_RESID: 158, PAIS: 'MAYOTTE'),
PaisModelo (ID_PAIS_RESID: 159, PAIS: 'MÉXICO'),
PaisModelo (ID_PAIS_RESID: 160, PAIS: 'MICRONÉSIA, ESTADOS FEDERADOS DA'),
PaisModelo (ID_PAIS_RESID: 163, PAIS: 'MOLDÁVIA'),
PaisModelo (ID_PAIS_RESID: 164, PAIS: 'MÔNACO'),
PaisModelo (ID_PAIS_RESID: 165, PAIS: 'MONGÓLIA'),
PaisModelo (ID_PAIS_RESID: 167, PAIS: 'MONTSERRAT'),
PaisModelo (ID_PAIS_RESID: 168, PAIS: 'MARROCOS'),
PaisModelo (ID_PAIS_RESID: 169, PAIS: 'MOÇAMBIQUE'),
PaisModelo (ID_PAIS_RESID: 171, PAIS: 'NAMÍBIA'),
PaisModelo (ID_PAIS_RESID: 172, PAIS: 'NAURU'),
PaisModelo (ID_PAIS_RESID: 174, PAIS: 'NEPAL'),
PaisModelo (ID_PAIS_RESID: 175, PAIS: 'PAÍSES BAIXOS (HOLANDA)'),
PaisModelo (ID_PAIS_RESID: 176, PAIS: 'ANTILHAS HOLANDESAS'),
PaisModelo (ID_PAIS_RESID: 177, PAIS: 'NOVA CALEDÔNIA'),
PaisModelo (ID_PAIS_RESID: 178, PAIS: 'NOVA ZELÂNDIA (AOTEAROA)'),
PaisModelo (ID_PAIS_RESID: 179, PAIS: 'NICARÁGUA'),
PaisModelo (ID_PAIS_RESID: 180, PAIS: 'NÍGER'),
PaisModelo (ID_PAIS_RESID: 181, PAIS: 'NIGÉRIA'),
PaisModelo (ID_PAIS_RESID: 182, PAIS: 'NIUE'),
PaisModelo (ID_PAIS_RESID: 183, PAIS: 'NORFOLK, ILHA'),
PaisModelo (ID_PAIS_RESID: 184, PAIS: 'MARIANAS SETENTRIONAIS'),
PaisModelo (ID_PAIS_RESID: 185, PAIS: 'NORUEGA'),
PaisModelo (ID_PAIS_RESID: 186, PAIS: 'OMAN'),
PaisModelo (ID_PAIS_RESID: 187, PAIS: 'PAQUISTÃO'),
PaisModelo (ID_PAIS_RESID: 188, PAIS: 'PALAU'),
PaisModelo (ID_PAIS_RESID: 190, PAIS: 'PANAMÁ'),
PaisModelo (ID_PAIS_RESID: 191, PAIS: 'PAPUA-NOVA GUINÉ'),
PaisModelo (ID_PAIS_RESID: 193,PAIS: 'PARAGUAI'),
PaisModelo (ID_PAIS_RESID: 194,PAIS: 'PERU'),
PaisModelo (ID_PAIS_RESID: 195,PAIS: 'FILIPINAS'),
PaisModelo (ID_PAIS_RESID: 196,PAIS: 'PITCAIRN'),
PaisModelo (ID_PAIS_RESID: 197,PAIS: 'POLÔNIA'),
PaisModelo (ID_PAIS_RESID: 198,PAIS: 'PORTUGAL'),
PaisModelo (ID_PAIS_RESID: 199,PAIS: 'PORTO RICO'),
PaisModelo (ID_PAIS_RESID: 200,PAIS: 'QATAR'),
PaisModelo (ID_PAIS_RESID: 201,PAIS: 'REUNIÃO'),
PaisModelo (ID_PAIS_RESID: 202,PAIS: 'ROMÊNIA'),
PaisModelo (ID_PAIS_RESID: 203,PAIS: 'RÚSSIA'),
PaisModelo (ID_PAIS_RESID: 204,PAIS: 'RUANDA'),
PaisModelo (ID_PAIS_RESID: 205,PAIS: 'SANTA HELENA'),
PaisModelo (ID_PAIS_RESID: 206,PAIS: 'SÃO CRISTÓVÃO E NÉVIS (SAINT KITTS E NEVIS)'),
PaisModelo (ID_PAIS_RESID: 207,PAIS: 'SANTA LÚCIA'),
PaisModelo (ID_PAIS_RESID: 208,PAIS: 'SAINT PIERRE ET MIQUELON'),
PaisModelo (ID_PAIS_RESID: 209,PAIS: 'SÃO VICENTE E GRANADINAS'),
PaisModelo (ID_PAIS_RESID: 210,PAIS: 'SAMOA (SAMOA OCIDENTAL)'),
PaisModelo (ID_PAIS_RESID: 211,PAIS: 'SAN MARINO'),
PaisModelo (ID_PAIS_RESID: 212,PAIS: 'SÃO TOMÉ E PRÍNCIPE'),
PaisModelo (ID_PAIS_RESID: 213,PAIS: 'ARÁBIA SAUDITA'),
PaisModelo (ID_PAIS_RESID: 214,PAIS: 'SENEGAL'),
PaisModelo (ID_PAIS_RESID: 217,PAIS: 'SEYCHELLES'),
PaisModelo (ID_PAIS_RESID: 218,PAIS: 'SERRA LEOA'),
PaisModelo (ID_PAIS_RESID: 219,PAIS: 'SINGAPURA'),
PaisModelo (ID_PAIS_RESID: 220,PAIS: 'ESLOVÁQUIA'),
PaisModelo (ID_PAIS_RESID: 221,PAIS: 'ESLOVÉNIA'),
PaisModelo (ID_PAIS_RESID: 222,PAIS: 'SALOMÃO, ILHAS'),
PaisModelo (ID_PAIS_RESID: 223, PAIS: 'SOMÁLIA'),
PaisModelo (ID_PAIS_RESID: 224, PAIS: 'ÁFRICA DO SUL'),
PaisModelo (ID_PAIS_RESID: 225, PAIS: 'GEÓRGIA DO SUL E SANDWICH DO SUL, ILHAS'),
PaisModelo (ID_PAIS_RESID: 226, PAIS: 'ESPANHA'),
PaisModelo (ID_PAIS_RESID: 228, PAIS: 'SRI LANKA'),
PaisModelo (ID_PAIS_RESID: 229, PAIS: 'SUDÃO'),
PaisModelo (ID_PAIS_RESID: 230, PAIS: 'SURINAME'),
PaisModelo (ID_PAIS_RESID: 231, PAIS: 'SVALBARD E JAN MAYEN'),
PaisModelo (ID_PAIS_RESID: 232, PAIS: 'SUAZILÂNDIA'),
PaisModelo (ID_PAIS_RESID: 233, PAIS: 'SUÉCIA'),
PaisModelo (ID_PAIS_RESID: 234, PAIS: 'SUÍÇA'),
PaisModelo (ID_PAIS_RESID: 235, PAIS: 'SÍRIA'),
PaisModelo (ID_PAIS_RESID: 236, PAIS: 'TAIWAN'),
PaisModelo (ID_PAIS_RESID: 237, PAIS: 'TAJIQUISTÃO'),
PaisModelo (ID_PAIS_RESID: 238, PAIS: 'TANZÂNIA'),
PaisModelo (ID_PAIS_RESID: 239, PAIS: 'TAILÂNDIA'),
PaisModelo (ID_PAIS_RESID: 240, PAIS: 'TOGO'),
PaisModelo (ID_PAIS_RESID: 241, PAIS: 'TOQUELAU'),
PaisModelo (ID_PAIS_RESID: 242, PAIS: 'TONGA'),
PaisModelo (ID_PAIS_RESID: 243, PAIS: 'TRINDADE E TOBAGO'),
PaisModelo (ID_PAIS_RESID: 245, PAIS: 'TUNÍSIA'),
PaisModelo (ID_PAIS_RESID: 246, PAIS: 'TURQUIA'),
PaisModelo (ID_PAIS_RESID: 247, PAIS: 'TURQUEMENISTÃO'),
PaisModelo (ID_PAIS_RESID: 248, PAIS: 'TURKS E CAICOS'),
PaisModelo (ID_PAIS_RESID: 249, PAIS: 'TUVALU'),
PaisModelo (ID_PAIS_RESID: 250, PAIS: 'UGANDA'),
PaisModelo (ID_PAIS_RESID: 251, PAIS: 'UCRÂNIA'),
PaisModelo (ID_PAIS_RESID: 252, PAIS: 'EMIRATOS ÁRABES UNIDOS'),
PaisModelo (ID_PAIS_RESID: 253, PAIS: 'REINO UNIDO DA GRÃ-BRETANHA E IRLANDA DO NORTE'),
PaisModelo (ID_PAIS_RESID: 254, PAIS: 'ESTADOS UNIDOS DA AMÉRICA'),
PaisModelo (ID_PAIS_RESID: 255, PAIS: 'MENORES DISTANTES DOS ESTADOS UNIDOS, ILHAS'),
PaisModelo (ID_PAIS_RESID: 256, PAIS: 'URUGUAI'),
PaisModelo (ID_PAIS_RESID: 257, PAIS: 'UZBEQUISTÃO'),
PaisModelo (ID_PAIS_RESID: 258,PAIS: 'VANUATU'),
PaisModelo (ID_PAIS_RESID: 259,PAIS: 'VENEZUELA'),
PaisModelo (ID_PAIS_RESID: 260,PAIS: 'VIETNÃ'),
PaisModelo (ID_PAIS_RESID: 261,PAIS: 'VIRGENS AMERICANAS, ILHAS'),
PaisModelo (ID_PAIS_RESID: 265,PAIS: 'WALLIS E FUTUNA'),
PaisModelo (ID_PAIS_RESID: 267,PAIS: 'SAARA OCIDENTAL'),
PaisModelo (ID_PAIS_RESID: 270,PAIS: 'IÉMEN'),
PaisModelo (ID_PAIS_RESID: 273,PAIS: 'ZÂMBIA'),
PaisModelo (ID_PAIS_RESID: 274,PAIS: 'ZIMBABWE'),
PaisModelo (ID_PAIS_RESID: 275,PAIS: 'PALESTINA'),
PaisModelo (ID_PAIS_RESID: 276,PAIS: 'OUTROS'),
];
var backgroundGradient = BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,

View File

@@ -1,35 +1,11 @@
import 'package:rkm/screens/configurations/about_screen.dart';
import 'package:rkm/screens/attendance_list_screen.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/screens/select_service/eligibility_assessment_screen.dart';
import 'package:rkm/screens/splash_screen.dart';
import '../screens/configurations/clear_data_screen.dart';
import '../screens/edit_procedures_screen.dart';
import '../screens/configurations/import_sigtap_screen.dart';
import '../screens/login/login_load_screen.dart';
import '../screens/configurations/main_procedures_screen.dart';
import '../screens/select_service/complementary_sheet_screen.dart';
import '../screens/select_service/consumption_markers_screen.dart';
import '../screens/select_service/procedures_screen.dart';
import '../screens/select_service/service_dental_screen.dart';
import '../screens/select_service/service_individual_screen.dart';
import '../screens/configurations/sinc_data_screen.dart';
import '../screens/configurations/sync_data_screen.dart';
var routes = {
'/home': (context) => HomeScreen(),
'/login_load': (context) => LoginLoadScreen(),
'/attendance_list': (context) => AttendanceListScreen(),
'/about': (context) => AboutScreen(),
'/main_procedures': (context) => MainProceduresScreen(),
'/sinc_data': (context) => SincDataScreen(),
'/clear_data': (context) => ClearDataScreen(),
'/import_sigtap': (context) => ImportSigtapScreen(),
'/edit_procedure': (context) => EditProceduresScreen(),
'/splash': (context) => SplashScreen(),
'/service_individual': (context) => ServiceIndividualScreen(),
'/service_dental': (context) => ServiceDentalScreen(),
'/eligibility_assessment': (context) => EligibilityAssessmentScreen(),
'/complementary_sheet': (context) => ComplementarySheetScreen(),
'/consumption_markers': (context) => ConsumptionMarkersScreen(),
'/procedures': (context) => ProceduresScreen(),
};

View File

@@ -2,8 +2,7 @@ import 'package:flutter/services.dart';
class FormatText extends TextInputFormatter{
@override
TextEditingValue formatEditUpdate(
TextEditingValue txtOdl,TextEditingValue txtNew){
TextEditingValue formatEditUpdate(TextEditingValue txtOdl,TextEditingValue txtNew){
return txtNew.copyWith(text: txtNew.text.toUpperCase());
}
}

View File

@@ -9,8 +9,12 @@ class MainControllers{
var senha = senhaDigitada.toUpperCase();
// Faz a criptografia da senha inserida
String senhaMD5 = grHashString(GRCryptoType.md5, senha);
print('senhaMD5');
print(senhaMD5);
// Retira o tipo (1, 2 ou 3) da senha do Usuário
int tipo = int.parse(senhaUsuario.substring(0, 1));
print('tipo $tipo');
// Define a possição inicial da quebra da senha
int posicaoInicialMin = 0;
int posicaoInicialMax= 0;
@@ -35,10 +39,17 @@ class MainControllers{
}
String inicio = senhaMD5.substring(posicaoInicialMin, posicaoInicialMax);
print('inicio');
print(inicio);
String fim = senhaMD5.substring(posicaoFinalMin, posicaoFinalMax);
print('fim');
print(fim);
// Faz a criptografia e concatena ela com sha1 e md5
String senhaCriptogradafa = tipo.toString() + '\$'+ grHashString(GRCryptoType.sha1, inicio + senha + fim);
print('senhaCriptogradafa');
print(senhaCriptogradafa);
// Retorna a senha criptografada
return senhaCriptogradafa;
}

View File

@@ -1,8 +1,13 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/config/routes.dart';
//Cadastro e edição do Cadastro do Cidadão, Cadastro Individual, Cadastro Domiciliar e Visita Domiciliar
class PostHttpOverrides extends HttpOverrides{
@override
HttpClient createHttpClient( context){
@@ -12,15 +17,27 @@ class PostHttpOverrides extends HttpOverrides{
}
void main() {
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
HttpOverrides.global = new PostHttpOverrides();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
locale: const Locale('pt'),
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
const Locale('pt', 'BR'),
],
theme: ThemeData(
primaryColor: ColorPalette.primary,
appBarTheme: AppBarTheme(

View File

@@ -1,10 +1,12 @@
class CheckModel{
int cod;
String subtitle;
bool check;
CheckModel({
required this.cod,
required this.subtitle,
required this.check
this.check = false
});
}

View File

@@ -0,0 +1,11 @@
class CheckProcedSiaModel{
int COD_SIA;
String DESCRICAO_PROCEDIMENTO;
bool check;
CheckProcedSiaModel({
required this.COD_SIA,
required this.DESCRICAO_PROCEDIMENTO,
this.check = false,
});
}

View File

@@ -6,5 +6,17 @@ class DropDownDataStringModel{
required this.cod,
required this.title
});
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is DropDownDataStringModel &&
runtimeType == other.runtimeType &&
cod == other.cod &&
title == other.title;
@override
int get hashCode => cod.hashCode ^ title.hashCode;
}

View File

@@ -0,0 +1,11 @@
class EquipeCidadao{
String DESCRICAO;
var ID_MICROAREA_CIDADAO;
var ID_AREA_CIDADAO;
EquipeCidadao({
required this.DESCRICAO,
required this.ID_MICROAREA_CIDADAO,
required this.ID_AREA_CIDADAO,
});
}

View File

@@ -0,0 +1,23 @@
class EquipeModelo{
int ID_EQUIPE;
int ID_UNIDADE;
String INE;
int AREA;
var ID_ATB_MICROAREA;
int ID_ATB_AREA;
var MICROAREA;
int ID_PROFISSIONAL;
int ATIVO;
EquipeModelo({
required this.ID_EQUIPE,
required this.ID_UNIDADE,
required this.INE,
required this.AREA,
required this.ID_ATB_MICROAREA,
required this.ID_ATB_AREA,
required this.MICROAREA,
required this.ID_PROFISSIONAL,
required this.ATIVO,
});
}

View File

@@ -0,0 +1,9 @@
class PaisModelo{
int ID_PAIS_RESID;
String PAIS;
PaisModelo({
required this.ID_PAIS_RESID,
required this.PAIS,
});
}

View File

@@ -1,70 +1,437 @@
import 'package:flutter/material.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/screens/registers_citizen/register_citizen_screen.dart';
import 'package:rkm/screens/select_service/atendimento_domiciliar_tela.dart';
import 'package:rkm/screens/select_service/visita_domiciliar_tela.dart';
import 'package:rkm/widgets/text_default.dart';
import 'package:sqflite/sqflite.dart';
import '../service/db/db_querys.dart';
import '../service/db/db_sqlite_load.dart';
import '../widgets/appbar_default.dart';
import '../widgets/button_default.dart';
class AttendanceListScreen extends StatefulWidget {
const AttendanceListScreen({Key? key}) : super(key: key);
String username;
AttendanceListScreen({required this.username});
@override
State<AttendanceListScreen> createState() => _AttendanceListScreenState();
}
class _AttendanceListScreenState extends State<AttendanceListScreen> {
List atendimentoDomiciliarLista = [];
List visitaDomiciliarLista = [];
List cadastroCidadaoLista = [];
List cadastrosIndividuais = [];
getData()async{
Database db = await DbSqliteLoad().intialDB();
// visitHome = await db.query('VISITAS_DOMICILIARES');
visitaDomiciliarLista =await db.rawQuery('''
SELECT VD.*, C.*, VD.SINCRONIZADO
FROM VISITAS_DOMICILIARES VD
INNER JOIN CIDADAOS C ON VD.ID_CIDADAO = C.ID_CIDADAO
WHERE VD.SINCRONIZADO = "N"
''');
cadastroCidadaoLista = await db.query('CIDADAOS WHERE SINCRONIZADO = "N"');
cadastrosIndividuais = await db.query('CADASTROS_INDIVIDUAIS WHERE SINCRONIZADO = "N"');
atendimentoDomiciliarLista =await db.rawQuery('''
SELECT AD.*, C.*, AD.SINCRONIZADO
FROM ATENDIMENTOS_DOMICILIARES AD
INNER JOIN CIDADAOS C ON AD.ID_CIDADAO = C.ID_CIDADAO
''');
setState(() {});
}
@override
void initState() {
super.initState();
getData();
}
@override
Widget build(BuildContext context) {
double altura = MediaQuery.of(context).size.height;
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Lista Atendimentos'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Lista Atendimentos',widget.username),
body: Container(
decoration: ConstVariable().backgroundGradient,
width: double.infinity,
height: double.infinity,
child: ListView(
height: altura,
child: Column(
children: [
Container(
padding: ConstVariable().marginHightInput,
color: ColorPalette.white,
child: Column(
width: double.infinity,
padding: ConstVariable().marginHightInput,
color: ColorPalette.white,
child: Column(
children: [
TextDefault(
text: 'Atendimentos Domiciliares: ${atendimentoDomiciliarLista.length} | Visitas Domiciliares: ${visitaDomiciliarLista.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
text: 'Cadastros Cidadãos Realizados / Atualizados : ${cadastroCidadaoLista.length + cadastrosIndividuais.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
],
)
),
Container(
height: altura*0.88,
child: ListView(
children: [
TextDefault(
text: 'Atendimentos Domiciliares: 0 | Atendimento Individuais: 0',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
atendimentoDomiciliarLista.isEmpty?Container():Container(
height: atendimentoDomiciliarLista.length*80,
child: ListView.builder(
physics: NeverScrollableScrollPhysics(),
itemCount: atendimentoDomiciliarLista.length,
itemBuilder: (context,i_ad){
List dataList = atendimentoDomiciliarLista[i_ad]['DATA'].toString().split('-');
String data = '${dataList[2]}/${dataList[1]}/${dataList[0]}';
return Card(
color: Colors.white,
child: Row(
children: [
Container(
height: 70,
width: 50,
decoration: BoxDecoration(
color: Color(0XFF666666),
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(10),topLeft: Radius.circular(10))
),
alignment: Alignment.center,
child: TextDefault(text: 'A.D.',color: Colors.white,fontSize: 22,fontWeigth: FontWeight.bold,),
),
SizedBox(width: 10,),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextDefault(text:atendimentoDomiciliarLista[i_ad]['NOME_CIDADAO'].toString(),color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
Row(
children: [
TextDefault(text:'DATA ATENDIMENTO: $data',color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
SizedBox(width: 20,),
TextDefault(text:'SINCRONIZADO : ${atendimentoDomiciliarLista[i_ad]['SINCRONIZADO']}',color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
],
),
],
),
Spacer(),
atendimentoDomiciliarLista[i_ad]['SINCRONIZADO']!='S'?IconButton(
icon: Container(
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
color: Color(0XFF990000),
borderRadius: BorderRadius.circular(50),
),
child: Icon(Icons.delete, color: Colors.white, size: 40,),
),
onPressed: ()async{
await showDialog(
context: context,
builder: (context){
return AlertDialog(
title: TextDefault(text: 'Aviso',color: ColorPalette.black54,textAlign: TextAlign.center,),
content: TextDefault(text: 'Deseja apagar esse "Atendimento Domiciliar" ?',color: ColorPalette.black54,),
actions: [
ButtonDefault(
onPressed: ()async{
Database db = await DbSqliteLoad().intialDB();
await db.delete(
'ATENDS_DOM_COMPL',
where: 'ID_ATENDIMENTO_DOMICILIAR = ?',
whereArgs: [atendimentoDomiciliarLista[i_ad]['ID_ATENDIMENTO_DOMICILIAR']],
);
await db.delete(
'ATENDS_DOM_PROC',
where: 'ID_ATENDIMENTO_DOMICILIAR = ?',
whereArgs: [atendimentoDomiciliarLista[i_ad]['ID_ATENDIMENTO_DOMICILIAR']],
);
await db.delete(
'ATENDIMENTOS_DOMICILIARES',
where: 'ID_ATENDIMENTO_DOMICILIAR = ?',
whereArgs: [atendimentoDomiciliarLista[i_ad]['ID_ATENDIMENTO_DOMICILIAR']],
);
Navigator.of(context).pop();
getData();
},
title: 'Sim',
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
textColor: ColorPalette.white,
),
ButtonDefault(
onPressed: ()=>Navigator.of(context).pop(false),
title: 'Não',
background: ColorPalette.white,
borderColor: ColorPalette.white,
textColor: ColorPalette.black54,
),
],
);
}
);
},
):Container(),
atendimentoDomiciliarLista[i_ad]['SINCRONIZADO']!='S'?IconButton(
icon: Container(
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
color: Colors.orangeAccent,
borderRadius: BorderRadius.circular(50),
),
child: Icon(Icons.edit, color: Colors.white, size: 40,),
),
onPressed: (){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => AtendimentoDomiciliarTela(name: atendimentoDomiciliarLista[i_ad]['NOME_CIDADAO'],username: widget.username,dados: atendimentoDomiciliarLista[i_ad],)),
);
},
):Container(),
],
));
},
),
),
TextDefault(
text: 'Atendimentos Odontológicos: 0 | Avaliação Elegibilidade: 0',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
visitaDomiciliarLista.isEmpty?Container():Container(
height: visitaDomiciliarLista.length*80,
child: ListView.builder(
physics: NeverScrollableScrollPhysics(),
itemCount: visitaDomiciliarLista.length,
itemBuilder: (context,i_vd){
//print(visitHome[i]);
List dataList = visitaDomiciliarLista[i_vd]['DT_ATENDIMENTO'].toString().split('-');
String data = '${dataList[2]}/${dataList[1]}/${dataList[0]}';
return Card(
color: Colors.white,
child: Row(
children: [
Container(
height: 70,
width: 50,
decoration: BoxDecoration(
color: Color(0XFF006633),
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(10),topLeft: Radius.circular(10))
),
alignment: Alignment.center,
child: TextDefault(text: 'V.D.',color: Colors.white,fontSize: 22,fontWeigth: FontWeight.bold,),
),
SizedBox(width: 10,),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextDefault(text:visitaDomiciliarLista[i_vd]['NOME_CIDADAO'].toString(),color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
Row(
children: [
TextDefault(text:'DATA ATENDIMENTO: $data',color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
SizedBox(width: 20,),
TextDefault(text:'SINCRONIZADO : ${visitaDomiciliarLista[i_vd]['SINCRONIZADO']}',color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
],
),
],
),
Spacer(),
visitaDomiciliarLista[i_vd]['SINCRONIZADO']!='S'?IconButton(
icon: Container(
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
color: Color(0XFF990000),
borderRadius: BorderRadius.circular(50),
),
child: Icon(Icons.delete, color: Colors.white, size: 40,),
),
onPressed: ()async{
await showDialog(
context: context,
builder: (context){
return AlertDialog(
title: TextDefault(text: 'Aviso',color: ColorPalette.black54,textAlign: TextAlign.center,),
content: TextDefault(text: 'Deseja apagar essa "Visita Domiciliar" ?',color: ColorPalette.black54,),
actions: [
ButtonDefault(
onPressed: ()async{
Database db = await DbSqliteLoad().intialDB();
await db.delete(
'VISITAS_DOMICILIARES_COMPL',
where: 'ID_VISITA_DOMICILIAR = ?',
whereArgs: [visitaDomiciliarLista[i_vd]['ID_VISITA_DOMICILIAR']],
);
await db.delete(
'VISITAS_DOMICILIARES',
where: 'ID_VISITA_DOMICILIAR = ?',
whereArgs: [visitaDomiciliarLista[i_vd]['ID_VISITA_DOMICILIAR']],
);
Navigator.of(context).pop();
getData();
},
title: 'Sim',
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
textColor: ColorPalette.white,
),
ButtonDefault(
onPressed: ()=>Navigator.of(context).pop(false),
title: 'Não',
background: ColorPalette.white,
borderColor: ColorPalette.white,
textColor: ColorPalette.black54,
),
],
);
}
);
},
):Container(),
visitaDomiciliarLista[i_vd]['SINCRONIZADO']!='S'?IconButton(
icon: Container(
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
color: Colors.orangeAccent,
borderRadius: BorderRadius.circular(50),
),
child: Icon(Icons.edit, color: Colors.white, size: 40,),
),
onPressed: (){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => VisitaDomiciliarTela(name: visitaDomiciliarLista[i_vd]['NOME_CIDADAO'],username: widget.username,dados: visitaDomiciliarLista[i_vd],)),
);
},
):Container(),
],
));
},
),
),
TextDefault(
text: 'Cadastros Cidadãos Realizados / Atualizados : 0',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
text: 'Fichas Complementares: 0 | Marcadores de Consumo : 0',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
text: 'Procedimentos Consolidados: 0 | Procedimentos Individuais : 0',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
text: 'Visitas Domiciliares: 0',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
cadastroCidadaoLista.isEmpty?Container():Container(
height: cadastroCidadaoLista.length*80,
child: ListView.builder(
physics: NeverScrollableScrollPhysics(),
itemCount: cadastroCidadaoLista.length,
itemBuilder: (context,i_c){
List dataList1 = cadastroCidadaoLista[i_c]['DT_HORA_CADASTRO'].toString().split(' ');
List dataList2 = dataList1[0].split('-');
String data = '${dataList2[2]}/${dataList2[1]}/${dataList2[0]}';
return Card(
color: Colors.white,
child: Row(
children: [
Container(
height: 70,
width: 50,
decoration: BoxDecoration(
color: Color(0XFF990000),
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(10),topLeft: Radius.circular(10))
),
alignment: Alignment.center,
child: TextDefault(text: 'C',color: Colors.white,fontSize: 22,fontWeigth: FontWeight.bold,),
),
SizedBox(width: 10,),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextDefault(text:cadastroCidadaoLista[i_c]['NOME_CIDADAO'].toString(),color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
Row(
children: [
TextDefault(text:'DATA CADASTRO : $data',color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
SizedBox(width: 20,),
TextDefault(text:'SINCRONIZADO : ${cadastroCidadaoLista[i_c]['SINCRONIZADO']}',color: ColorPalette.black54,fontWeigth: FontWeight.w700,),
],
),
],
),
Spacer(),
cadastroCidadaoLista[i_c]['ORIGEM']=='C' && cadastroCidadaoLista[i_c]['SINCRONIZADO']=='N'
?IconButton(
icon: Container(
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
color: Color(0XFF990000),
borderRadius: BorderRadius.circular(50),
),
child: Icon(Icons.delete, color: Colors.white, size: 40,),
),
onPressed: ()async{
await showDialog(
context: context,
builder: (context){
return AlertDialog(
title: TextDefault(text: 'Aviso',color: ColorPalette.black54,textAlign: TextAlign.center,),
content: TextDefault(text: 'Deseja apagar esse cidadão?',color: ColorPalette.black54,),
actions: [
ButtonDefault(
onPressed: ()async{
Database db = await DbSqliteLoad().intialDB();
await db.delete(
'CIDADAOS', // Substitua pelo nome da sua tabela
where: 'ID_CIDADAO = ?',
whereArgs: [cadastroCidadaoLista[i_c]['ID_CIDADAO']],
);
Navigator.of(context).pop();
getData();
},
title: 'Sim',
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
textColor: ColorPalette.white,
),
ButtonDefault(
onPressed: ()=>Navigator.of(context).pop(false),
title: 'Não',
background: ColorPalette.white,
borderColor: ColorPalette.white,
textColor: ColorPalette.black54,
),
],
);
}
);
},
)
:Container(),
cadastroCidadaoLista[i_c]['SINCRONIZADO']=='N'?IconButton(
icon: Container(
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
color: Colors.orangeAccent,
borderRadius: BorderRadius.circular(50),
),
child: Icon(Icons.edit, color: Colors.white, size: 40,),
),
onPressed: ()async {
await DBQuerys().buscaCidadao(cadastroCidadaoLista[i_c]['NOME_CIDADAO']).then((list){
// print(showResults[index]['CD_USUARIO_SUS']);
Navigator.push(
context,
MaterialPageRoute(builder:(context) => RegisterCitizenScreen(listData: list,username: widget.username,)),
);
});
},
):Container(),
],
));
},
),
),
],
)
),
),
],
),

View File

@@ -1,14 +1,15 @@
import 'package:flutter/material.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/service/db/db_sqlite_sync.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../../service/db/db_sqlite_load.dart';
import '../../service/shared_preferences/shared_preferences_service.dart';
import '../../config/color_palette.dart';
import '../../widgets/text_default.dart';
class ClearDataScreen extends StatefulWidget {
const ClearDataScreen({Key? key}) : super(key: key);
String username;
ClearDataScreen({Key? key, required this.username}) : super(key: key);
@override
State<ClearDataScreen> createState() => _ClearDataScreenState();
@@ -48,7 +49,7 @@ class _ClearDataScreenState extends State<ClearDataScreen> {
textColor: ColorPalette.white,
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
onPressed: ()=>Navigator.pushNamedAndRemoveUntil(context, '/home', (Route<dynamic> route) => false),
onPressed: ()=>Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (Route<dynamic> route) => false),
)
],
),
@@ -91,7 +92,7 @@ class _ClearDataScreenState extends State<ClearDataScreen> {
onPressed: ()async{
await DbSqliteLoad().deleteLoad().then((_)async {
await DbSqliteSync().deleteSync().then((_){
Navigator.pushReplacementNamed(context, '/splash');
Navigator.pushNamedAndRemoveUntil(context, '/splash', (Route<dynamic> route) => false);
});
});
},

View File

@@ -8,7 +8,9 @@ import '../../widgets/button_default.dart';
import '../../widgets/text_default.dart';
class ImportSigtapScreen extends StatefulWidget {
const ImportSigtapScreen({Key? key}) : super(key: key);
String username;
ImportSigtapScreen({required this.username});
@override
State<ImportSigtapScreen> createState() => _ImportSigtapScreenState();
@@ -46,22 +48,101 @@ class _ImportSigtapScreenState extends State<ImportSigtapScreen> {
stage = "Etapa 1 de 4 - Importando informações do CONECTASUS";
});
await ApiDataImportSigtap().loadSIGTAP(urlAPI, mode, nameCityApi).then((valueAPI)async{
setState(() {
stage = "Etapa 2 de 4 - Gravando os Procedimentos no Aplicativo";
});
// print(valueAPI['procedimentos']);
await DbSqliteSigtap().saveProceduresSigtapDB(valueAPI['procedimentos']).then((value)async{
await DbSqliteSigtap().saveProceduresRegisterSigtapDB(valueAPI['procedimentosRegistros']).then((value)async{
List<Map<String, dynamic>> rows = [];
List<dynamic> procedimentos = valueAPI['procedimentos'];
print(procedimentos);
if(procedimentos.isNotEmpty){
for(int i=0;procedimentos.length > i;i++){
Map<String, dynamic> row = {
'COD_PROC_SIGTAP' : procedimentos[i]['codProcedimento'],
'DESC_PROC_SIGTAP' : procedimentos[i]['nome'],
'GRUPO_PROC_SIGTAP' : procedimentos[i]['codGrupo'],
'QTDE_MAXIMA' : procedimentos[i]['qtdeMax'],
'IDADE_MIN' : procedimentos[i]['idadeMin'],
'IDADE_MAX' : procedimentos[i]['idadeMax'],
'SEXO' : procedimentos[i]['sexo'],
};
rows.add(row);
setState(() {});
}
}
await DbSqliteSigtap().saveProceduresSigtapDB(rows).then((value)async{
setState(() {
stage = "Etapa 2 de 4 - Gravando os Procedimentos no Aplicativo";
});
List<Map<String, dynamic>> rows = [];
List list = valueAPI['procedimentosRegistros'];
if(list.isNotEmpty) {
for (int i = 0; list.length > i; i++) {
Map<String, dynamic> row = {
'COD_PROC_SIGTAP': list[i]['codProcedimento'],
'CODIGO_REGISTRO': list[i]['codRegistro'],
};
rows.add(row);
setState(() {});
}
}
await DbSqliteSigtap().saveProceduresRegisterSigtapDB(rows).then((value)async{
setState(() {
stage = "Etapa 3 de 4 - Gravando os CIDs no Aplicativo";
});
await DbSqliteSigtap().saveSigtapCID(valueAPI['CID']).then((value)async{
await DbSqliteSigtap().saveProceduresSigtapCID(valueAPI['procedimentosCID']).then((value)async{
setState(() {
stage = "Etapa 4 de 4 - Gravando os CIDs no Aplicativo";
});
await DbSqliteSigtap().saveCBOSigtap(valueAPI['CBO']).then((value)async{
await DbSqliteSigtap().saveProceduresCBOSigtap(valueAPI['procedimentosCBO']).then((value)async{
List<Map<String, dynamic>> rows = [];
List list = valueAPI['CID'];
if(list.isNotEmpty) {
for (int i = 0; list.length > i; i++) {
Map<String, dynamic> row = {
'CODIGO_CID' : list[i]['codCID'],
'DESCRICAO_CID' : list[i]['descCID'],
'RESTRICAO_SEXO' : list[i]['restSexo'],
};
rows.add(row);
setState(() {});
}
}
await DbSqliteSigtap().saveSigtapCID(rows).then((value)async{
setState(() {
stage = "Etapa 4 de 4 - Gravando os CIDs no Aplicativo";
});
List<Map<String, dynamic>> rows = [];
List list = valueAPI['procedimentosCID'];
if(list.isNotEmpty) {
for (int i = 0; list.length > i; i++) {
Map<String, dynamic> row = {
'COD_PROC_SIGTAP' : list[i]['codProcedimento'],
'CODIGO_CID' : list[i]['codCID'],
};
rows.add(row);
setState(() {});
}
}
await DbSqliteSigtap().saveProceduresSigtapCID(rows).then((value)async{
List<Map<String, dynamic>> rows = [];
List list = valueAPI['CBO'];
if(list.isNotEmpty) {
for (int i = 0; list.length > i; i++) {
Map<String, dynamic> row = {
'CODIGO_CBO' : list[i]['codCBO'],
'DESCRICAO_CBO' : list[i]['descCBO'],
};
rows.add(row);
setState(() {});
}
}
await DbSqliteSigtap().saveCBOSigtap(rows).then((value)async{
List<Map<String, dynamic>> rows = [];
List list = valueAPI['procedimentosCBO'];
if(list.isNotEmpty) {
for (int i = 0; list.length > i; i++) {
Map<String, dynamic> row = {
'COD_PROC_SIGTAP' : list[i]['codProcedimento'],
'CODIGO_CBO' : list[i]['codCBO'],
};
rows.add(row);
setState(() {});
}
}
await DbSqliteSigtap().saveProceduresCBOSigtap(rows).then((value)async{
await DbSqliteSigtap().saveSyncSigtap(valueAPI['competencia']).then((value)async{
setState(() {
finish = true;
@@ -95,7 +176,7 @@ class _ImportSigtapScreenState extends State<ImportSigtapScreen> {
onPressed: (){
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => HomeScreen()),
MaterialPageRoute(builder: (context) => HomeScreen(username: widget.username,)),
);
},
title: 'Continuar',

View File

@@ -14,7 +14,8 @@ import '../../widgets/text_default.dart';
import '../../widgets/title_containers.dart';
class MainProceduresScreen extends StatefulWidget {
const MainProceduresScreen({Key? key}) : super(key: key);
String username;
MainProceduresScreen({required this.username});
@override
State<MainProceduresScreen> createState() => _MainProceduresScreenState();
@@ -179,7 +180,7 @@ class _MainProceduresScreenState extends State<MainProceduresScreen> {
double height = MediaQuery.of(context).size.height;
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos Iniciais'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos Iniciais',widget.username),
body: Container(
padding: EdgeInsets.all(10),
decoration: ConstVariable().backgroundGradient,

View File

@@ -1,45 +0,0 @@
{
"competencia":"202303",
"procedimentos":[
{
"codProcedimento":"0101010010",
"nome":"ATIVIDADE EDUCATIVA \/ ORIENTA\u00c7\u00c3O EM GRUPO NA ATEN\u00c7\u00c3O PRIM\u00c1RIA",
"codGrupo":"01",
"qtdeMax":9999,
"idadeMin":833,
"idadeMax":833,
"sexo":"N"
}
],
"procedimentosRegistros":[
{
"codProcedimento":"0101010010",
"codRegistro":"01"
}
],
"CID":[
{
"codCID":"A000",
"descCID":"A00.0 Colera dev Vibrio cholerae 01 biot cholerae",
"restSexo":"5"
}
],
"procedimentosCID":[
{
"codProcedimento":"0201010046",
"codCID":"C211"
}
],
"CBO":[
{
"codCBO":"223208",
"descCBO":"Cirurgi\u00e3o dentista - cl\u00ednico geral"
}
],
"procedimentosCBO":[
{
"codProcedimento":"0101010010",
"codCBO":"223208"
}
]
}

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/service/db/db_querys.dart';
import 'package:rkm/widgets/button_default.dart';
import '../../config/color_palette.dart';
@@ -7,14 +8,15 @@ import '../../service/db/db_sqlite_load.dart';
import '../../service/db/db_sqlite_sync.dart';
import '../../widgets/text_default.dart';
class SincDataScreen extends StatefulWidget {
const SincDataScreen({Key? key}) : super(key: key);
class SyncDataScreen extends StatefulWidget {
String username;
SyncDataScreen({Key? key,required this.username}) : super(key: key);
@override
State<SincDataScreen> createState() => _SincDataScreenState();
State<SyncDataScreen> createState() => _SyncDataScreenState();
}
class _SincDataScreenState extends State<SincDataScreen> {
class _SyncDataScreenState extends State<SyncDataScreen> {
String mode ='';
String urlAPI ='';
@@ -63,14 +65,25 @@ class _SincDataScreenState extends State<SincDataScreen> {
});
await DBQuerys().cadCidadaos().then((response)async{
tableCIDADAOS = response;
// print(list);
// tableCIDADAOS[0].forEach((key, value) {
// print('$key: $value');
// });
await DBQuerys().cadDomiciliares().then((response)async{
tableCIDADAO_DOMICILIO = response;
// tableCIDADAO_DOMICILIO[0].forEach((key, value) {
// print('$key: $value');
// });
// print('tableCIDADAO_DOMICILIO');
// print(tableCIDADAO_DOMICILIO);
await DBQuerys().domCidadaos().then((response)async{
tableDOMICILIOS_CIDADAOS = response;
// print('tableDOMICILIOS_CIDADAOS');
// print(tableDOMICILIOS_CIDADAOS);
await DBQuerys().logrDomicilios().then((response)async{
tableINNERJOINCIDADAO_DOMICILIO = response;
// print('tableINNERJOINCIDADAO_DOMICILIO');
// print(tableINNERJOINCIDADAO_DOMICILIO);
await DBQuerys().cadIndividuais().then((response)async{
tableCADASTROS_INDIVIDUAIS = response;
@@ -118,13 +131,13 @@ class _SincDataScreenState extends State<SincDataScreen> {
// print(tableFICHAS_COMPLEMENTARES);
await DBQuerys().atendimentosDomiciliares().then((response)async{
tableATENDIMENTOS_DOMICILIARES = response;
print(tableATENDIMENTOS_DOMICILIARES);
// print(tableATENDIMENTOS_DOMICILIARES);
await DBQuerys().atendDomCompl().then((response)async{
tableATENDS_DOM_COMPL = response;
print(tableATENDS_DOM_COMPL);
// print(tableATENDS_DOM_COMPL);
await DBQuerys().atendDomProcsFicha().then((response)async{
tableATENDS_DOM_PROC = response;
print(tableATENDS_DOM_PROC);
// print(tableATENDS_DOM_PROC);
await DBQuerys().atendDomProcsSigtap().then((response)async{
tableATENDS_DOM_SIGTAP = response;
// print(tableATENDS_DOM_SIGTAP);
@@ -228,6 +241,21 @@ class _SincDataScreenState extends State<SincDataScreen> {
'aval_eleg_concl_ine': tableAVAL_ELEG_CONCL_INE,
'avaliacao_elegibilidade': tableAVALIACOES_ELEGIBILIDADE,
};
// print(map['cidadaos'][0]['DT_HORA_CADASTRO']);
// print(map['cidadaos'][0]['POSSUI_VEICULO']);
// print(map['cidadaos'][0]['MODELO_VEICULO']);
// print(map['cidadaos'][0]['ANO_VEICULO']);
// print(map['cidadaos'][0]['CD_USUARIO_SUS']);
// print(map['cidadaos'][0]['RENDA_MENSAL']);
// print(map['cad_individuais'][0]['FIBROMIALGIA']);
// print(map['cad_individuais'][0]['TRANSTORNO_ESPECTRO_AUTISTA']);
// print(map['cad_individuais'][0]['CNES_RESP_CADASTRO']);
// print(map['cad_individuais'][0]['ID_AREA_CIDADAO']);
// print(map['cad_individuais'][0]['ID_MICROAREA_CIDADAO']);
print('tableATENDS_DOM_PROC');
print(tableATENDS_DOM_PROC);
await ApiDataPost().sincronizacao(urlAPI, mode, nameCityApi,map).then((response)async{
if(response=='error'){
setState(() {
@@ -251,6 +279,9 @@ class _SincDataScreenState extends State<SincDataScreen> {
mode = list[0]['MODE'];
nameCityApi = list[0]['NAME_CITY_API'];
});
print(urlAPI);
print(mode);
print(nameCityApi);
setState(() {});
}
@@ -285,7 +316,7 @@ class _SincDataScreenState extends State<SincDataScreen> {
textColor: ColorPalette.white,
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
onPressed: ()=>Navigator.pushNamedAndRemoveUntil(context, '/home', (Route<dynamic> route) => false),
onPressed: ()=>Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (Route<dynamic> route) => false),
)
],
),
@@ -340,27 +371,27 @@ class _SincDataScreenState extends State<SincDataScreen> {
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
text: 'Atendimento Individuais: ${tableATENDS_INDIVIDUAIS==null?'0':tableATENDS_INDIVIDUAIS.length}',
textAlign: TextAlign.center,
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
text: 'Atendimentos Odontológicos: ${tableATENDS_ODONTOLOGICOS==null?'0':tableATENDS_ODONTOLOGICOS.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
text: 'Avaliação Elegibilidade: ${tableAVALIACOES_ELEGIBILIDADE==null?'0':tableAVALIACOES_ELEGIBILIDADE.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
// TextDefault(
// text: 'Atendimento Individuais: ${tableATENDS_INDIVIDUAIS==null?'0':tableATENDS_INDIVIDUAIS.length}',
// textAlign: TextAlign.center,
// fontWeigth: FontWeight.bold,
// color: ColorPalette.black54,
// fontSize: 18,
// ),
// TextDefault(
// textAlign: TextAlign.center,
// text: 'Atendimentos Odontológicos: ${tableATENDS_ODONTOLOGICOS==null?'0':tableATENDS_ODONTOLOGICOS.length}',
// fontWeigth: FontWeight.bold,
// color: ColorPalette.black54,
// fontSize: 18,
// ),
// TextDefault(
// textAlign: TextAlign.center,
// text: 'Avaliação Elegibilidade: ${tableAVALIACOES_ELEGIBILIDADE==null?'0':tableAVALIACOES_ELEGIBILIDADE.length}',
// fontWeigth: FontWeight.bold,
// color: ColorPalette.black54,
// fontSize: 18,
// ),
TextDefault(
textAlign: TextAlign.center,
text: 'Cadastros Cidadãos Realizados / Atualizados : ${tableCIDADAOS==null?'0':tableCIDADAOS.length}',
@@ -368,35 +399,34 @@ class _SincDataScreenState extends State<SincDataScreen> {
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
text: 'Fichas Complementares: ${tableFICHAS_COMPLEMENTARES==null?'0':tableFICHAS_COMPLEMENTARES.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
text: 'Marcadores de Consumo : ${tableMARCADORES_CONSUMO==null?'0':tableMARCADORES_CONSUMO.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
//aqui verificar de qual tela seria esses dados
text: 'Procedimentos Consolidados: 0',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
TextDefault(
textAlign: TextAlign.center,
text: 'Procedimentos Individuais : ${tablePROCEDIMENTOS_INDIV==null?'0':tablePROCEDIMENTOS_INDIV.length}',
fontWeigth: FontWeight.bold,
color: ColorPalette.black54,
fontSize: 18,
),
// TextDefault(
// textAlign: TextAlign.center,
// text: 'Fichas Complementares: ${tableFICHAS_COMPLEMENTARES==null?'0':tableFICHAS_COMPLEMENTARES.length}',
// fontWeigth: FontWeight.bold,
// color: ColorPalette.black54,
// fontSize: 18,
// ),
// TextDefault(
// textAlign: TextAlign.center,
// text: 'Marcadores de Consumo : ${tableMARCADORES_CONSUMO==null?'0':tableMARCADORES_CONSUMO.length}',
// fontWeigth: FontWeight.bold,
// color: ColorPalette.black54,
// fontSize: 18,
// ),
// TextDefault(
// textAlign: TextAlign.center,
// text: 'Procedimentos Consolidados: 0',
// fontWeigth: FontWeight.bold,
// color: ColorPalette.black54,
// fontSize: 18,
// ),
// TextDefault(
// textAlign: TextAlign.center,
// text: 'Procedimentos Individuais : ${tablePROCEDIMENTOS_INDIV==null?'0':tablePROCEDIMENTOS_INDIV.length}',
// fontWeigth: FontWeight.bold,
// color: ColorPalette.black54,
// fontSize: 18,
// ),
TextDefault(
textAlign: TextAlign.center,
text: 'Visitas Domiciliares: ${tableVISITAS_DOMICILIARES==null?'0':tableVISITAS_DOMICILIARES.length}',
@@ -416,7 +446,7 @@ class _SincDataScreenState extends State<SincDataScreen> {
textColor: ColorPalette.white,
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,
onPressed: ()=>Navigator.pushNamedAndRemoveUntil(context, '/home', (Route<dynamic> route) => false),
onPressed: ()=>Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username,)), (Route<dynamic> route) => false),
),
):Container(),
done?Padding(

View File

@@ -2,17 +2,21 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/widgets/appbar_default.dart';
import 'package:rkm/widgets/input_text.dart';
import 'package:rkm/widgets/onbackbutton.dart';
import 'package:rkm/widgets/text_default.dart';
import 'package:sqflite/sqflite.dart';
import '../config/color_palette.dart';
import '../service/db/db_querys.dart';
import '../service/db/db_sqlite_load.dart';
import '../service/shared_preferences/shared_preferences_service.dart';
import '../widgets/button_default.dart';
import '../widgets/dropdown_button_default.dart';
import '../widgets/subtitle_containers.dart';
import '../widgets/title_containers.dart';
class EditProceduresScreen extends StatefulWidget {
const EditProceduresScreen({Key? key}) : super(key: key);
String username;
EditProceduresScreen({required this.username});
@override
State<EditProceduresScreen> createState() => _EditProceduresScreenState();
@@ -22,9 +26,15 @@ class _EditProceduresScreenState extends State<EditProceduresScreen> {
var controllerProfessional = TextEditingController();
var controllerUnit = TextEditingController();
var NOME_PROFISSIONAL = TextEditingController();
var NOME_UNIDADE = TextEditingController();
List listCBO = [];
List listINEPROF = [];
String? selectCBO;
String? selectTeam;
String? INE_RESP_CADASTRO;
String? date;
int idUsuario = 0;
String idUnidade = '';
escolherprazoInicio(BuildContext context) async {
var pickDate = await showDatePicker(
@@ -46,6 +56,65 @@ class _EditProceduresScreenState extends State<EditProceduresScreen> {
return formattedDate;
}
getUser()async{
final PrefService _prefService = PrefService();
_prefService.readCacheIDUser().then((value){
if(value != null){
idUsuario = int.parse(value);
}
}).then((value)async{
await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list){
// ID_PROFISSIONAL = list['ID_PROFISSIONAL'];
NOME_PROFISSIONAL.text = list['NOME_PROFISSIONAL'];
// String CNS_PROFISSIONAL = list['CNS_PROFISSIONAL'];
// if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){
// CNS_VALIDO = true;
// }
loadCBO();
});
});
_prefService.readCacheUnidade().then((value){
if(value!=null){
idUnidade = value[0];
NOME_UNIDADE.text = value[1];
}
});
}
loadCBO()async{
Database dbcbo = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM PROFISSIONAIS_CBOS WHERE ID_PROFISSIONAL = $idUsuario';
List listcbo = await dbcbo.rawQuery(query);
if(listcbo.length!=0){
for(int i = 0; listcbo.length>i;i++){
await DBQuerys().buscaCBOSProfissional(listcbo[i]['CODIGO_CBO']).then((cbo)async{
if(cbo.length!=0){
listCBO.add(cbo[0]['DESCRICAO_CBO']+' - '+listcbo[i]['CODIGO_CBO'].toString());
}
});
}
}
loadEquipe();
}
loadEquipe()async{
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
for(int i=0; list.length > i;i++){
INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}';
listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}');
}
setState(() {});
}
@override
void initState() {
super.initState();
getUser();
}
@override
Widget build(BuildContext context) {
@@ -53,9 +122,9 @@ class _EditProceduresScreenState extends State<EditProceduresScreen> {
double height = MediaQuery.of(context).size.height;
return WillPopScope(
onWillPop: ()async => await OnBackButton().onBackButton(context),
onWillPop: ()async => await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos Consolidados'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos Consolidados',widget.username),
body: Container(
decoration: ConstVariable().backgroundGradient,
width: width,
@@ -135,7 +204,7 @@ class _EditProceduresScreenState extends State<EditProceduresScreen> {
padding: EdgeInsets.all(5),
width: width*0.5,
color: ColorPalette.titleContainer,
child: TextDefault(text: 'ADMINISTRADOR',color: ColorPalette.black54,fontSize: 15,),
child: TextDefault(text: NOME_PROFISSIONAL.text,color: ColorPalette.black54,fontSize: 15,),
)
],
),
@@ -157,7 +226,7 @@ class _EditProceduresScreenState extends State<EditProceduresScreen> {
width: width*0.5,
color: ColorPalette.titleContainer,
child: TextDefault(
text: 'USF PINHAL - EMILIA STEPHANI SIMIONATO',
text: NOME_UNIDADE.text,
color: ColorPalette.black54,
fontSize: 15,
),
@@ -186,7 +255,7 @@ class _EditProceduresScreenState extends State<EditProceduresScreen> {
width: width*0.4,
widthContainer: width*0.3,
select: selectCBO,
list: ConstVariable().itensCBO,
list: listCBO,
onChanged: (value){
setState(() {
selectCBO = value!;
@@ -216,11 +285,11 @@ class _EditProceduresScreenState extends State<EditProceduresScreen> {
fontSize: 15,
width: width*0.5,
widthContainer: width*0.4,
select: selectTeam,
list: [],
select: INE_RESP_CADASTRO,
list: listINEPROF,
onChanged: (value){
setState(() {
selectTeam = value!;
INE_RESP_CADASTRO = value!;
});
},
),

View File

@@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:line_icons/line_icons.dart';
import 'package:rkm/controllers/main_controllers.dart';
import 'package:rkm/screens/attendance_list_screen.dart';
import 'package:rkm/screens/edit_procedures_screen.dart';
import 'package:rkm/screens/registers_citizen/register_citizen_screen.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/service/db/db_querys.dart';
@@ -11,7 +13,9 @@ import '../widgets/appbar_default.dart';
import '../widgets/item_citizen.dart';
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key}) : super(key: key);
String username;
HomeScreen({required this.username});
@override
State<HomeScreen> createState() => _HomeScreenState();
@@ -26,13 +30,15 @@ class _HomeScreenState extends State<HomeScreen> {
loadCitizen()async{
await DbSqliteLoad().intialDB().then((db)async {
dataCitizen = await db.query('CIDADAOS ORDER BY NOME_CIDADAO');
// print(await db.rawQuery("SELECT * FROM CIDADAOS WHERE NOME_PAI='REGINALDO OLIVEIRA'"));
// print(dataCitizen.length);
// print(await db.rawQuery("SELECT * FROM CIDADAOS"));
});
searchCitizen();
return 'complete';
}
searchCitizen()async{
if(inputSearch.text.isNotEmpty){
showResults =[];
for (int i =0;dataCitizen.length>i;i++) {
@@ -52,6 +58,7 @@ class _HomeScreenState extends State<HomeScreen> {
){
if(showResults.length<10){
showResults.add(dataCitizen[i]);
// print(dataCitizen[i]['ORIGEM']);
}
}
}
@@ -59,8 +66,11 @@ class _HomeScreenState extends State<HomeScreen> {
});
}else{
setState(() {
for(int i = 0;i<10;i++){
showResults.add(dataCitizen[i]);
if(dataCitizen.isNotEmpty){
for(int i = 0;i<10;i++){
showResults.add(dataCitizen[i]);
// print(dataCitizen[i]['ORIGEM']);
}
}
});
}
@@ -88,7 +98,7 @@ class _HomeScreenState extends State<HomeScreen> {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Início'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Início',widget.username),
body: Container(
padding: EdgeInsets.all(10),
width: width,
@@ -101,7 +111,7 @@ class _HomeScreenState extends State<HomeScreen> {
InputSearchText(
hint: 'Busca cidadão (Por NOME ou CNS ou PRONTUÁRIO ou DATA NASCIMENTO)',
fontSize: 20,
fontSizeHint: 11,
fontSizeHint: 13,
controller: inputSearch,
width: width*0.72,
),
@@ -109,16 +119,16 @@ class _HomeScreenState extends State<HomeScreen> {
icon: Icons.person_add,
onPressed: ()=> Navigator.push(
context,
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(listData: [],)),
MaterialPageRoute(builder: (context) => RegisterCitizenScreen(listData: [],username: widget.username,)),
)
),
IconButtonDefault(
icon: Icons.article,
onPressed: ()=>Navigator.pushNamed(context, '/attendance_list')
onPressed: ()=>Navigator.push(context,MaterialPageRoute(builder:(context) => AttendanceListScreen(username: widget.username,)))
),
IconButtonDefault(
icon: LineIcons.edit,
onPressed: ()=>Navigator.pushNamed(context, '/edit_procedure')
onPressed: ()=> Navigator.push(context,MaterialPageRoute(builder:(context) => EditProceduresScreen(username: widget.username,)))
),
],
),
@@ -137,15 +147,18 @@ class _HomeScreenState extends State<HomeScreen> {
return ItemCitizen(
date: date,
dataPatient: showResults[index],
username: widget.username,
name: '${showResults[index]['NOME_CIDADAO']}',
mother:'${showResults[index]['NOME_MAE']}',
numberCNS: '${showResults[index]['CNS']}'=='null'||'${showResults[index]['CNS']}'==''?'999999999999999':'${showResults[index]['CNS']}',
numberMedicalRecord: '${showResults[index]['NUM_PRONTUARIO']}'==''?'-----':'${showResults[index]['NUM_PRONTUARIO']}',
onTap: ()async {
await DBQuerys().buscaCidadao(showResults[index]['NOME_CIDADAO']).then((list){
// print(showResults[index]['CD_USUARIO_SUS']);
Navigator.push(
context,
MaterialPageRoute(builder:(context) => RegisterCitizenScreen(listData: list,)),
MaterialPageRoute(builder:(context) => RegisterCitizenScreen(listData: list,username: widget.username,)),
);
});
},

View File

@@ -6,6 +6,7 @@ import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/text_default.dart';
import '../config/const_variable.dart';
import '../service/api/api_data_load.dart';
import '../service/db/db_querys.dart';
import '../service/db/db_sqlite_load.dart';
import '../service/shared_preferences/shared_preferences_service.dart';
@@ -20,12 +21,11 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
final PrefService _prefService = PrefService();
String messageSteps = 'Aguarde ...';
bool finish = false;
String idUsuario = '';
String mode = '';
String urlAPI = '';
bool loading = false;
String nameCityApi = '';
String user = '';
String username = '';
double countProg = 0.0;
@override
@@ -40,7 +40,7 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
urlAPI = list[0]['URLAPI'];
mode = list[0]['MODE'];
nameCityApi = list[0]['NAME_CITY_API'];
user = list[0]['USER'];
username = list[0]['USER'];
if(urlAPI!=''){
initLoading();
}
@@ -48,19 +48,32 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
}
initLoading()async{
await ApiDataLoad().loadPerm(urlAPI,mode,nameCityApi,user).then((response)async{
if(response['status'] == 0){
AlertDialogDefault().alert(context, 'Erro', 'Permissão negada', 'Voltar');
} else if(response['status'] == 1 && response['load_perm'] == "S") {
idUsuario = response['idUsuario'].toString();
print('idUsuario $idUsuario');
_prefService.createCacheidUsuario(idUsuario).then((value)async{
await ApiDataLoad().loadUnidades(urlAPI,mode,nameCityApi,user).then((value)async{
await ApiDataLoad().loadPerm(urlAPI,mode,nameCityApi,username).then((response)async{
print(response);
await ApiDataLoad().loadEtniasIndigenas(urlAPI, mode, nameCityApi, username).then((value)async{
List list = value;
List<Map<String, dynamic>> rows = [];
if(list.length !=0) {
setState(() {
messageSteps = "Etapa 1 de 12 - Gravando as Etnias Indigenas no Aplicativo";
});
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
'ID_ETNIA_INDIGENA': list[i]['idEtniaIndigena'].toString().trim(),
'DESC_ETNIA_INDIGENA': list[i]['descEtniaIndigena'].toString().trim(),
};
rows.add(row);
countProg = 0.05;
setState(() {});
}
}
await DbSqliteLoad().saveEtniasIndigenasDB(rows).then((value)async{
await ApiDataLoad().loadUnidades(urlAPI,mode,nameCityApi,username).then((value)async{
List list = value;
List<Map<String, dynamic>> rows = [];
if(list.length !=0){
setState(() {
messageSteps = "Etapa 1 de 11 - Gravando as Unidades no Aplicativo";
messageSteps = "Etapa 2 de 12 - Gravando as Unidades no Aplicativo";
});
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
@@ -69,16 +82,16 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
'CNES_UNIDADE': list[i]['nrCNES']
};
rows.add(row);
countProg = 0.1;
setState(() {});
// countProg = 0.1;
// setState(() {});
}
await DbSqliteLoad().saveUnidadesDB(rows).then((value)async{
await ApiDataLoad().loadProcedimentos(urlAPI,mode,nameCityApi,user).then((value)async{
await ApiDataLoad().loadProcedimentos(urlAPI,mode,nameCityApi,username).then((value)async{
List list = value;
List<Map<String, dynamic>> rows = [];
if(list.length !=0){
setState(() {
messageSteps = "Etapa 2 de 11 - Gravando os Procedimentos no Aplicativo";
messageSteps = "Etapa 3 de 12 - Gravando os Procedimentos no Aplicativo";
});
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
@@ -96,12 +109,12 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
}
await DbSqliteLoad().saveProceduresDB(rows).then((value)async{
print('finalizou save Procedures');
await ApiDataLoad().loadProcedimentosRegistros(urlAPI,mode,nameCityApi,user).then((value)async{
await ApiDataLoad().loadProcedimentosRegistros(urlAPI,mode,nameCityApi,username).then((value)async{
List list = value;
List<Map<String, dynamic>> rows = [];
if(list.length !=0){
setState(() {
messageSteps = "Etapa 3 de 11 - Gravando os Procedimentos Registros no Aplicativo";
messageSteps = "Etapa 4 de 12 - Gravando os Procedimentos Registros no Aplicativo";
});
print('finalizou saveProceduresRegisterDB');
for (int i = 0; i < list.length; i++) {
@@ -114,13 +127,13 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
setState(() {});
}
await DbSqliteLoad().saveProceduresRegisterDB(rows).then((value)async{
await ApiDataLoad().loadCID(urlAPI,mode,nameCityApi,user).then((value)async{
await ApiDataLoad().loadCID(urlAPI,mode,nameCityApi,username).then((value)async{
print('loadCID');
List list = value;
List<Map<String, dynamic>> rows = [];
if(list.length !=0){
setState(() {
messageSteps = "Etapa 4 de 11 - Gravando os CIDs no Aplicativo";
messageSteps = "Etapa 5 de 12 - Gravando os CIDs no Aplicativo";
});
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
@@ -134,13 +147,13 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
}
await DbSqliteLoad().saveCID(rows).then((value)async{
print('finalizou saveCID');
await ApiDataLoad().loadProcedimentosCID(urlAPI,mode,nameCityApi,user).then((value)async{
await ApiDataLoad().loadProcedimentosCID(urlAPI,mode,nameCityApi,username).then((value)async{
print('loadProcedimentosCID');
List list = value;
List<Map<String, dynamic>> rows = [];
if(list.length !=0){
setState(() {
messageSteps = "Etapa 5 de 11 - Gravando os Procedimentos CIDs no Aplicativo";
messageSteps = "Etapa 6 de 12 - Gravando os Procedimentos CIDs no Aplicativo";
});
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
@@ -153,13 +166,13 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
}
await DbSqliteLoad().saveProceduresCID(rows).then((value)async{
print('finalizou saveProceduresCID');
await ApiDataLoad().loadCBO(urlAPI,mode,nameCityApi,user).then((value)async{
await ApiDataLoad().loadCBO(urlAPI,mode,nameCityApi,username).then((value)async{
print('loadCBO');
List list = value;
List<Map<String, dynamic>> rows = [];
if(list.length !=0){
setState(() {
messageSteps = "Etapa 6 de 11 - Gravando os CBOs no Aplicativo";
messageSteps = "Etapa 8 de 12 - Gravando os CBOs no Aplicativo";
});
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
@@ -172,13 +185,13 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
}
await DbSqliteLoad().saveCBO(rows).then((value)async{
print('finalizou saveCBO');
await ApiDataLoad().loadProcedimentosCBO(urlAPI,mode,nameCityApi,user).then((value)async{
await ApiDataLoad().loadProcedimentosCBO(urlAPI,mode,nameCityApi,username).then((value)async{
print('loadProcedimentosCBO');
List list = value;
List<Map<String, dynamic>> rows = [];
if(list.length !=0){
setState(() {
messageSteps = "Etapa 7 de 11 - Gravando os Procedimentos CBO no Aplicativo";
messageSteps = "Etapa 8 de 12 - Gravando os Procedimentos CBO no Aplicativo";
});
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
@@ -191,13 +204,13 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
}
await DbSqliteLoad().saveProceduresCBO(rows).then((value)async{
print('finalizou saveProceduresCBO');
await ApiDataLoad().loadCIAP(urlAPI,mode,nameCityApi,user).then((value)async{
await ApiDataLoad().loadCIAP(urlAPI,mode,nameCityApi,username).then((value)async{
print('loadCIAP');
List list = value;
List<Map<String, dynamic>> rows = [];
if(list.length != 0){
setState(() {
messageSteps = "Etapa 8 de 11 - Gravando os CIAPs no Aplicativo";
messageSteps = "Etapa 9 de 12 - Gravando os CIAPs no Aplicativo";
});
for(int i=0;list.length > i;i++){
Map<String, dynamic> row = {
@@ -211,13 +224,13 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
}
await DbSqliteLoad().saveCIAP(rows).then((value)async{
print('finalizou saveCIAP');
await ApiDataLoad().loadMunicipios(urlAPI,mode,nameCityApi,user).then((value)async{
await ApiDataLoad().loadMunicipios(urlAPI,mode,nameCityApi,username).then((value)async{
print('loadMunicipios');
List list = value;
List<Map<String, dynamic>> rows = [];
if(list.length!=0){
setState(() {
messageSteps = "Etapa 9 de 11 - Gravando os Municípios no Aplicativo";
messageSteps = "Etapa 10 de 12 - Gravando os Municípios no Aplicativo";
});
for(int i=0;list.length > i;i++){
Map<String, dynamic> row = {
@@ -232,13 +245,13 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
setState(() {});
}
await DbSqliteLoad().saveCity(rows).then((value)async{
await ApiDataLoad().loadEquipes(urlAPI,mode,nameCityApi,user).then((value)async{
await ApiDataLoad().loadEquipes(urlAPI,mode,nameCityApi,username).then((value)async{
print('loadEquipes');
List list = value;
List<Map<String, dynamic>> rows = [];
if(list.length!=0){
setState(() {
messageSteps = "Etapa 10 de 11 - Gravando as Equipes no Aplicativo";
messageSteps = "Etapa 11 de 12 - Gravando as Equipes no Aplicativo";
});
for(int i=0;list.length > i;i++){
Map<String, dynamic> row = {
@@ -258,13 +271,13 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
countProg = 0.95;
setState(() {});
print('finalizou saveTeam');
await ApiDataLoad().loadEquipeComponentes(urlAPI,mode,nameCityApi,user).then((value)async{
await ApiDataLoad().loadEquipeComponentes(urlAPI,mode,nameCityApi,username).then((value)async{
print('loadEquipeComponentes');
List list = value;
List<Map<String, dynamic>> rows = [];
if(list.length!=0) {
setState(() {
messageSteps ="Etapa 11 de 11 - Gravando os Profissionais das Equipes no Aplicativo";
messageSteps ="Etapa 12 de 12 - Gravando os Profissionais das Equipes no Aplicativo";
});
for(int i=0;list.length > i;i++){
Map<String, dynamic> row = {
@@ -338,7 +351,7 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
}
});
});
}
});
});
}
@@ -351,7 +364,7 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
return Scaffold(
bottomSheet: Container(
width: width,
height: height*0.05,
height: 70,
color: ColorPalette.appBar,
child: finish
?Row(

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:rkm/controllers/main_controllers.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/service/api/url_api_const.dart';
@@ -42,6 +43,7 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
final PrefService _prefService = PrefService();
checkLogin()async{
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
if(selectCity!=null){
_prefService.createCacheModel(inputUser.text,inputPassword.text,selectCity!,mode);
@@ -61,7 +63,8 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
urlAPI = 'http://${inputIP.text}:${inputPort.text}/api/atb/';
}
await ApiDataLoad().apiConect(urlAPI,mode,nameCityApi,inputUser.text).then((response) async {
// print("erre : "+response.toString());
print('response');
print(response);
if(response == 'Erro' || response.toString() == 'Error: -902 - I/O error during "open" operation for file "/bases/conectasus/extrema/SISTEMA.FDB" Error while trying to open file No such file or directory'){
setState(() {
loading = false;
@@ -70,7 +73,11 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
}else if(inputUser.text == inputPassword.text || response['bloqueio']==1){
setState(() {
loading = false;
error = 'Usuário bloqueado/usuário e/ou senha incorreta';
if( response['bloqueio']==1){
error = 'Usuário bloqueado/usuário e/ou senha incorreta';
}else if(inputUser.text == inputPassword.text){
error = 'Usuário e senha não podem ser idênticas';
}
});
}else if(response['status']==0) {
setState(() {
@@ -78,14 +85,14 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
error = 'Usuário não encontrado';
});
}else if(response['status']==1) {
// print('aqui 1');
// print(response);
print('aqui 1');
print(response);
setState((){
error = '';
});
//verificar se a criptografia identificou se a senha está correta
print('chegou');
if(MainControllers().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
// 'print'(EncryptPassword().encrypt(inputPassword.text,response['userPass']));
setState(() {
loading = false;
});
@@ -199,6 +206,9 @@ class _LoginLoadScreenState extends State<LoginLoadScreen> {
width: width*0.6,
colorBorder: Colors.white,
onChanged: (v)=>setState((){}),
inputFormatters: [
FilteringTextInputFormatter.deny(RegExp(r'\s')),
],
),
TitleInput(title:'Senha'),
InputText(

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/screens/login/sync_login_screen.dart';
@@ -30,7 +31,6 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
String? now;
bool validatorDropDown= false;
int contLogo = 0;
bool loading = false;
String urlAPI='';
String mode = '';
String nameCityApi = '';
@@ -38,6 +38,9 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
int codCity = 0;
int codCityIbge = 0;
String codState = '';
String passwordDB = '';
String userDB = '';
String competencia = '';
recupDB()async{
await DbSqliteLoad().intialDB().then((db)async{
@@ -46,49 +49,33 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
mode = list[0]['MODE'];
nameCityApi = list[0]['NAME_CITY_API'];
nameCityFront = list[0]['NAME_CITY_FRONT'];
inputUser.text = list[0]['USER'];
inputPassword.text = list[0]['PASSWORD'];
userDB = list[0]['USER'];
passwordDB = list[0]['PASSWORD'];
codCity = list[0]['COD_CITY'];
codState = list[0]['COD_STATE'];
codCityIbge = list[0]['COD_IBGE'];
});
if(widget.listControl.isNotEmpty){
String ano = widget.listControl[0]['COMPETENCIA'].toString().substring(0, 4);
String mes = widget.listControl[0]['COMPETENCIA'].toString().substring(4, 6);
competencia = '$mes/$ano';
}
setState(() {});
}
checkLogin()async{
if(inputUser.text.isNotEmpty && inputPassword.text.isNotEmpty && inputUser.text.length>3 && inputPassword.text.length>3){
setState(() {
error = '';
loading = true;
});
await ApiDataLoad().apiConect(urlAPI,mode,nameCityApi,inputUser.text).then((response) async {
if(inputUser.text == inputPassword.text || response['bloqueio']==1){
setState(() {
error = 'Usuário bloqueado/senha incorreta';
});
}else if(response['status']==0) {
setState(() {
error = 'Usuário não encontrado';
});
}else if(response['status']==1) {
setState((){
error = '';
});
//verificar se a criptografia identificou se a senha está correta
if(MainControllers().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
// print(EncryptPassword().encrypt(inputPassword.text,response['userPass']));
DbSqliteLoad().updateArgs(mode, inputUser.text, inputPassword.text).then((value){
setState(() {
loading = false;
});
Navigator.push(
context,
MaterialPageRoute(builder: (context) => HomeScreen()),
);
});
}
}
if(inputUser.text == userDB && inputPassword.text == passwordDB){
setState(() {
error = '';
});
Navigator.push(context,MaterialPageRoute(builder: (context) => HomeScreen(username: inputUser.text,)));
}else{
setState(() {
error = 'Usuário/senha inválido(s)';
});
}
}else{
setState(() {
error = 'Usuário/senha inválido(s)';
@@ -141,16 +128,7 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
mode == 'homologacao'?Image.asset('assets/images/homologacao.png',width: width*0.4):Container(),
mode == 'desenvolvimento'?Image.asset('assets/images/desenvolvimento.png',width: width*0.4):Container(),
SizedBox(height: 10),
loading?Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Image.asset('assets/images/loading.gif'),
SizedBox(height: 10),
TextDefault(text: 'Carregando dados...',color: ColorPalette.black54,fontSize: 20,fontWeigth: FontWeight.bold,)
],
),
):Form(
Form(
autovalidateMode: AutovalidateMode.onUserInteraction,
child: Container(
width: width*0.6,
@@ -164,6 +142,9 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
width: width*0.6,
colorBorder: Colors.white,
onChanged: (v)=>setState((){}),
inputFormatters: [
FilteringTextInputFormatter.deny(RegExp(r'\s')),
],
),
TitleInput(title:'Senha'),
InputText(
@@ -178,7 +159,7 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
),
),
),
loading?Container():ButtonDefault(
ButtonDefault(
onPressed: ()=>checkLogin(),
title: 'Entrar',
width: width*0.6,
@@ -210,7 +191,7 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
padding: EdgeInsets.symmetric(vertical: 5),
width: width*0.6,
child: TextDefault(
text: 'Competência: '+widget.listControl[0]['COMPETENCIA'].toString(),
text: 'Competência: $competencia',
fontWeigth: FontWeight.bold,
color: Colors.black,
textAlign: TextAlign.center,
@@ -221,7 +202,7 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
padding: EdgeInsets.symmetric(vertical: 5),
width: width*0.6,
child: TextDefault(
text: 'Área: '+widget.listControl[0]['AREA'].toString()+' - Microárea: '+widget.listControl[0]['MICROAREA'].toString(),
text: 'Área: '+widget.listControl[0]['AREA_DESCRICAO'].toString()+' - Microárea: '+widget.listControl[0]['MICROAREA_DESCRICAO'].toString(),
fontWeigth: FontWeight.bold,
color: Colors.black,
textAlign: TextAlign.center,

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:rkm/screens/sync_init_screen.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/config/const_variable.dart';
@@ -8,9 +9,12 @@ import 'package:rkm/widgets/input_text.dart';
import 'package:rkm/widgets/text_default.dart';
import 'package:sqflite/sqflite.dart';
import '../../controllers/main_controllers.dart';
import '../../models/equipe_modelo.dart';
import '../../service/api/api_data_load.dart';
import '../../service/api/api_data_sync.dart';
import '../../service/db/db_sqlite_load.dart';
import '../../service/shared_preferences/shared_preferences_service.dart';
import '../../widgets/dropdown_equipe.dart';
import '../../widgets/title_input.dart';
class SyncLoginScreen extends StatefulWidget {
@@ -25,7 +29,7 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
String error = '';
String? now;
String? selectUnit;
String? selectTeam;
EquipeModelo? selectTeam;
bool validatorDropDown= false;
bool citizenOutArea = false;
int contLogo = 0;
@@ -35,9 +39,11 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
bool loading = false;
List<String> listUnit=[];
List searchUnitCodList=[];
List<String> listTeam = [];
List<EquipeModelo> listTeam = [];
String idUnidade ='';
String idUsuario ='1';
int idUsuario =0;
int ID_ATB_AREA = 0;
int ID_ATB_MICROAREA = 0;
final PrefService _prefService = PrefService();
@@ -63,31 +69,18 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
});
await ApiDataLoad().apiConect(urlAPI,mode,nameCityApi,inputUser.text).then((response) async {
if(inputUser.text == inputPassword.text || response['bloqueio']==1){
if(MainControllers().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
setState(() {
error = 'Usuário bloqueado/senha incorreta';
loading = false;
});
}else if(response['status']==0) {
setState(() {
error = 'Usuário não encontrado';
});
}else if(response['status']==1) {
setState((){
error = '';
});
if(MainControllers().encrypt(inputPassword.text,response['userPass']) == response['userPass']){
setState(() {
loading = false;
_prefService.createCacheSync(selectTeam!, citizenOutArea).then((value){
DbSqliteLoad().updateArgs(mode, inputUser.text, inputPassword.text).then((value) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SyncInitScreen()),
);
});
_prefService.createCacheSync(selectTeam!, citizenOutArea).then((value){
DbSqliteLoad().updateArgs(mode, inputUser.text, inputPassword.text).then((value) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SyncInitScreen()),
);
});
});
}
});
}
});
}else{
@@ -112,14 +105,20 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
super.initState();
recupDB();
getUnit();
// getUser();
}
getUser(){
_prefService.readCacheIdUsuario('idUsuario').then((value){
if(value != null){
idUsuario = value;
Future<int> getUser()async{
await ApiDataSync().syncProfissionais(urlAPI,mode,nameCityApi,inputUser.text,idUnidade).then((value)async{
List users = value;
for(int i =0; users.length > i; i++){
if( value[i]['username'].toString().toUpperCase()==inputUser.text.toUpperCase()){
print('idUsuario' + value[i]['idProfissional'].toString());
idUsuario = value[i]['idProfissional'];
}
}
print(value);
});
return idUsuario;
}
getUnit()async{
@@ -140,24 +139,52 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
for(int i=0; listUnit.length > i;i++){
if(listUnit[i] == selectUnit){
idUnidade = searchUnitCodList[i].toString();
_prefService.createCacheUnidade(idUnidade,selectUnit!);
print('idUnidade: $idUnidade / select $selectUnit');
_prefService.createCacheUnidade(idUnidade,selectUnit!).then((onValue){
print('onValeu ${onValue.toString()}');
});
break;
}
}
if(idUnidade!=''){
// print('idUnidade');
// print(idUnidade);
// print('idUsuario');
// print(idUsuario);
var query = "SELECT * FROM EQUIPES JOIN PROFISSIONAIS_EQUIPE ON PROFISSIONAIS_EQUIPE.ID_EQUIPE = EQUIPES.ID_EQUIPE WHERE ID_UNIDADE = $idUnidade AND ID_PROFISSIONAL = $idUsuario";
List list = await db.rawQuery(query);
listTeam.clear();
for(int i=0; list.length > i;i++){
listTeam.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}');
}
setState(() {});
getUser().then((value)async{
var query = "SELECT * FROM EQUIPES JOIN PROFISSIONAIS_EQUIPE ON PROFISSIONAIS_EQUIPE.ID_EQUIPE = EQUIPES.ID_EQUIPE WHERE ID_UNIDADE = $idUnidade AND ID_PROFISSIONAL = $value";
List list = await db.rawQuery(query);
listTeam.clear();
print(list);
for(int i=0; list.length > i;i++){
listTeam.add(
EquipeModelo(
AREA:list[i]['AREA'],
ID_EQUIPE:list[i]['ID_EQUIPE'],
INE:list[i]['INE'].toString(),
ID_ATB_AREA:list[i]['ID_ATB_AREA'],
ID_ATB_MICROAREA:list[i]['ID_ATB_MICROAREA'],
MICROAREA:list[i]['MICROAREA'],
ID_PROFISSIONAL:list[i]['ID_PROFISSIONAL'],
ATIVO:list[i]['ATIVO'],
ID_UNIDADE:list[i]['ID_UNIDADE'],
)
);
// listTeam.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']==null?'':list[i]['MICROAREA']}');
}
var query1 = "SELECT * FROM EQUIPES WHERE ID_EQUIPE = $idUnidade";
List list1 = await db.rawQuery(query1);
// print(list1);
var query2 = "SELECT * FROM PROFISSIONAIS_EQUIPE WHERE ID_PROFISSIONAL = $idUsuario";
List list2 = await db.rawQuery(query2);
// print(list2);
print(list2.length);
print('idUsuario');
print(idUsuario);
print('idUnidade');
print(idUnidade);
print('listTeam');
print(listTeam);
setState(() {});
_prefService.createCacheidUsuario(value.toString());
});
}
// print('listTeam');
// print(listTeam);
}
@override
@@ -168,6 +195,7 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
return Scaffold(
appBar: AppBar(
iconTheme: ConstVariable().iconThemeDataDefault,
centerTitle: true,
title: TextDefault(text: 'RKM AB - Sincronização de Unidade',fontSize: ConstVariable().fontSizeTitleAppBar,color: ColorPalette.white),
),
@@ -208,6 +236,9 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
width: width*0.6,
colorBorder: Colors.white,
onChanged: (v)=>setState((){}),
inputFormatters: [
FilteringTextInputFormatter.deny(RegExp(r'\s')),
],
),
TitleInput(title:'Senha'),
InputText(
@@ -230,11 +261,14 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
validatorDropDown = true;
selectTeam = null;
});
getTeam();
_prefService.removeUnidade().then((onValue){
print('remove unidade');
getTeam();
});
},
),
TitleInput(title:'Equipe'),
DropDownButtonDefault(
DropDownEquipe(
width: width*0.7,
title: 'Equipe',
list: listTeam,
@@ -242,6 +276,18 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
onChanged: (value){
setState(() {
selectTeam = value!;
print('ID_ATB_AREA');
print(selectTeam!.ID_ATB_AREA.toString());
print('AREA');
print(selectTeam!.AREA.toString());
print('ID_ATB_MICROAREA');
print(selectTeam!.ID_ATB_MICROAREA.toString());
print('MICROAREA');
print(selectTeam!.MICROAREA.toString());
print('UNIDADE');
print(selectTeam!.ID_UNIDADE.toString());
print('EQUIPE');
print(selectTeam!.ID_EQUIPE.toString());
});
},
),

View File

@@ -2,10 +2,14 @@ import 'package:brasil_fields/brasil_fields.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
import 'package:mask_text_input_formatter/mask_text_input_formatter.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/models/drop_down_data_string_model.dart';
import 'package:rkm/models/pais_modelo.dart';
import 'package:rkm/widgets/alert_dialog_default.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/dropdown_button_com_pesquisa_paises.dart';
import 'package:rkm/widgets/title_containers.dart';
import 'package:sqflite/sqflite.dart';
import '../../controllers/main_controllers.dart';
@@ -14,6 +18,7 @@ import '../../service/db/db_sqlite_load.dart';
import '../../service/db/db_sqlite_sync.dart';
import '../../service/shared_preferences/shared_preferences_service.dart';
import '../../widgets/appbar_default.dart';
import '../../widgets/dropdown_etnia_indigena.dart';
import '../../widgets/dropdown_with_subtitle.dart';
import '../../widgets/error_default.dart';
import '../../widgets/input_search_text.dart';
@@ -22,9 +27,11 @@ import '../../widgets/onbackbutton.dart';
import '../../widgets/subtitle_appbar_citizen.dart';
import '../../widgets/switch_with_subtitle.dart';
import '../../widgets/text_default.dart';
import '../../widgets/title_input.dart';
class RegisterCitizenScreen extends StatefulWidget {
List listData;
RegisterCitizenScreen({required this.listData});
String username;
RegisterCitizenScreen({required this.listData, required this.username});
@override
State<RegisterCitizenScreen> createState() => _RegisterCitizenScreenState();
}
@@ -82,6 +89,8 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
var dateDeathController = TextEditingController();
String checkCNS = '';
String checkCPF = '';
String checkEmail = '';
String checkCEP = '';
String? selectTypeCertificate;
int? selectTypeCertificateCod;
String? selectCTPSUF;
@@ -93,13 +102,16 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
String? selectZone;
int? selectZoneCod;
String? selectVillage;
String? selectCountry;
PaisModelo? selectCountry;
bool showSelectCountry = false;
String? selectPaisResidencia;
String? selectClassification;
int? selectClassificationCOD;
String? selectGender;
String? selectMaritalStatus;
int? selectMaritalStatusCod;
String? selectBreed;
DropDownDataStringModel? selectEtniaIndigena;
int? selectBreedCod;
String? selectScooling;
int? selectScoolingCod;
@@ -138,6 +150,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
List<String> listScooling = [];
List<String> listBreed = [];
List<String> listMaritalStatus = [];
List<DropDownDataStringModel> listEtniasIndigenas = [];
String idUnidade = '';
String codSus = '';
bool edit = false;
@@ -149,9 +162,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
var pickDate = await showDatePicker(
context: context,
locale: Locale('pt','BR'),
initialDate: DateTime.now(),
firstDate: DateTime(1900),
lastDate: DateTime(2024));
lastDate: DateTime.now()
);
if (pickDate != null) {
setState(() {
if(type == 'birth'){
@@ -180,13 +195,35 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
return formattedDate;
}
getEtniasIndigenas()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM ETNIAS_INDIGENAS";
List list = await db.rawQuery(query);
for(int i = 0; list.length > i ; i++ ){
listEtniasIndigenas.add(DropDownDataStringModel(cod: list[i]['ID_ETNIA_INDIGENA'], title: list[i]['DESC_ETNIA_INDIGENA']));
}
print('antes');
print(listEtniasIndigenas.length);
List<DropDownDataStringModel> listaSemDuplicatas = listEtniasIndigenas.toSet().toList();
listEtniasIndigenas = listaSemDuplicatas;
print('depois');
print(listEtniasIndigenas.length);
if(widget.listData.length!=0){
getData();
edit = true;
showTab = true;
}
}
getUnit()async{
Database db = await DbSqliteLoad().intialDB();
var queryControl = "SELECT * FROM CONTROLE_INTERNO";
List listControl = await db.rawQuery(queryControl);
final PrefService _prefService = PrefService();
_prefService.readCacheUnidade('idUnidade').then((listUnidade)async{
idUnidade =listUnidade[0];
_prefService.readCacheUnidade().then((listUnidade)async{
idUnidade =listUnidade[0].toString();
});
setState(() {
unitController.text = listControl[0]['NOME_UNIDADE'];
@@ -197,13 +234,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
Database db = await DbSqliteLoad().intialDB();
var queryCity = "SELECT * FROM ARGS";
List listCity = await db.rawQuery(queryCity);
// print(listCity);
setState(() {
cityController.text = '${listCity[0]['NAME_CITY_FRONT']} - ${listCity[0]['COD_STATE']}'.toUpperCase();
codIBGEController.text = listCity[0]['COD_IBGE'].toString();
});
String city = MainControllers().replaceDefaul(listCity[0]['NAME_CITY_FRONT']);
// print(city);
resultListResid = await DBQuerys().buscaMunicipioporNome(city);
}
@@ -214,6 +249,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
for(int i=0; listVillageDB.length > i;i++){
villageDB.add('${listVillageDB[i]['NO_BAIRRO']}');
}
if(widget.listData.isNotEmpty){
if(widget.listData[0]['NO_BAIRRO_LOGR']!=null && widget.listData[0]['NO_BAIRRO_LOGR']!='' && !villageDB.contains(widget.listData[0]['NO_BAIRRO_LOGR'])){
villageDB.add(widget.listData[0]['NO_BAIRRO_LOGR']);
}
}
setState(() {});
}
@@ -224,16 +264,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
for(int i=0; list.length > i;i++){
typeStreetDB.add('${list[i]['NO_LOGR_TIPO']}');
}
// print('oque');
// print(typeStreetDB);
setState(() {});
}
loadStreetDB()async{
streetDB=[];
Database db = await DbSqliteLoad().intialDB();
// var query = "SELECT * FROM EQUIPES JOIN PROFISSIONAIS_EQUIPE ON PROFISSIONAIS_EQUIPE.ID_EQUIPE = EQUIPES.ID_EQUIPE WHERE ID_UNIDADE = $idUnidade AND ID_PROFISSIONAL = $idUsuario";
// {ID_LOGR_ENDERECO: 14, ID_LOGR_TIPO: 27, DESC_LOGR_ENDERECO: NICOLAU MAROTTI, ID_BAIRRO: 135},
var query = "SELECT * FROM LOGRADOUROS_ENDERECOS WHERE ID_BAIRRO = $idBairro AND ID_LOGR_TIPO = $idTipo ORDER BY DESC_LOGR_ENDERECO";
List list = await db.rawQuery(query);
@@ -323,19 +359,26 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
checkCNS = 'ok';
}
if((selectClassification!='OUTRO MUNICIPIO' && selectCountry == 'BRASIL' && selectStreet == null) ||
(selectStreet!=null && (cepController.text.isEmpty || cepController.text.length!=8)) ||
(selectStreet!=null && numberController.text.isEmpty) ||
(selectClassification!='OUTRO MUNICIPIO' && selectStreet!=null && (cepController.text.isEmpty || cepController.text.length!=10)) ||
(selectClassification!='OUTRO MUNICIPIO' && selectStreet!=null && numberController.text.isEmpty) ||
(selectTypeStreet == null && selectClassification!='OUTRO MUNICIPIO') ||
(selectVillage == null && (selectCountry == 'BRASIL' && selectClassification!='OUTRO MUNICIPIO')) ||
(cityController.text.isEmpty && selectCountry!='OUTRO') ||
selectCountry == null
){
checkClassification = true;
print('selectClassification: $selectClassification');
print('selectCountry: $selectCountry');
print('selectStreet: $selectStreet');
print('cepController: ${cepController.text}');
print('selectVillage: $selectVillage');
print('cityController: ${cityController.text}');
print('erro no end');
}
//ok
if(nameController.text.isEmpty ||
if( nameController.text.isEmpty ||
!nameController.text.contains(' ') ||
selectGender==null ||
selectNaturality==null ||
selectBreed==null ||
@@ -344,8 +387,8 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
selectCountry==null ||
date == 'Data de Nascimento'||
cityBirthController.text.isEmpty ||
messageDDDController.text.isEmpty ||
messageController.text.isEmpty ||
mobileDDDController.text.isEmpty ||
mobileController.text.isEmpty ||
checkMother ||
checkFather ||
checkClassification||
@@ -371,7 +414,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
}
}
}
//sdsafdsf
saveCitizen()async{
Map<String, dynamic> row = {
'ID_CIDADAO' : idCidadao,
@@ -387,6 +430,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'NO_MUNICIPIO_NASC' : resultListNasc[0]['NO_MUNICIPIO'],
'ESTADO_UF_NASC' : resultListNasc[0]['UF_ESTADO'],
'ID_ETNIA' : selectBreedCod,
'ID_ETNIA_INDIGENA' : selectEtniaIndigena==null?0:selectEtniaIndigena!.cod.toString().trim(),
'ID_ESCOLARIDADE' : selectScoolingCod,
'ID_DEFICIENCIA' : selectDeficiencyCod,
'NOME_MAE' : nameMotherController.text,
@@ -399,16 +443,16 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'CLASSIFICACAO' : selectClassificationCOD,
'CLASSIFICACAO_SUB' : selectSubdivisionCOD,
'NUM_FAMILIA' : numberFamilyController.text,
'ID_PAIS_RESID' : selectCountry=='BRASIL'?33:0,
'ID_MUNICIPIO_RESID' : resultListResid[0]['ID_MUNICIPIO'],
'NO_MUNICIPIO_RESID' : resultListResid[0]['NO_MUNICIPIO'],
'ESTADO_UF_RESID' : resultListResid[0]['UF_ESTADO'],
'ID_PAIS_RESID' : selectCountry!.ID_PAIS_RESID,
'ID_MUNICIPIO_RESID' : selectCountry!.ID_PAIS_RESID!=33?0:resultListResid[0]['ID_MUNICIPIO'],
'NO_MUNICIPIO_RESID' : selectCountry!.ID_PAIS_RESID!=33?'':resultListResid[0]['NO_MUNICIPIO'],
'ESTADO_UF_RESID' : selectCountry!.ID_PAIS_RESID!=33?'':resultListResid[0]['UF_ESTADO'],
'CODIGO_IBGE_RESID' : codIBGEController.text,
'NO_BAIRRO_LOGR' : selectVillage,
'ID_LOGR_TIPO' : idTipo,
'NOME_LOGR' : selectStreet,
'CEP_LOGR' : cepController.text.isNotEmpty?int.parse(cepController.text):0,
'NUMERO_LOGR' : numberController.text.isNotEmpty?int.parse(numberController.text):0,
'CEP_LOGR' : cepController.text.isNotEmpty?int.parse(cepController.text.replaceAll('-', '').replaceAll('.', '')):0,
'NUMERO_LOGR' : numberController.text.isNotEmpty && numberController.text!='S/N'?int.parse(numberController.text):0,
'LOTEAMENTO_LOGR' : selectSubdivision,
'COMPL_LOGR' : complementController.text,
'PONTO_REFERENCIA' : referencePointController.text,
@@ -421,10 +465,10 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'NUM_RECADO' : messageController.text.isNotEmpty?int.parse(messageController.text):0,
'EMAIL' : emailController.text,
'OBSERVACOES' : observationController.text,
'CPF' : CPFController.text.isNotEmpty?int.parse(CPFController.text):0,
'CPF' : CPFController.text.isNotEmpty?int.parse(CPFController.text.replaceAll('.', '').replaceAll('-', '')):0,
'CNS' : checkCNS == 'ok'&& CNSController.text.isNotEmpty?int.parse(CNSController.text):999999999999999,
'TITULO_ELEITOR' : voterController.text,
'RG_NUMERO' : RGController.text.isNotEmpty?int.parse(RGController.text):0,
'RG_NUMERO' : RGController.text.isNotEmpty && RGController.text!='null'?int.parse(RGController.text):0,
'RG_COMPLEMENTO' : RGComplementController.text,
'RG_UF' : selectRGUF,
'RG_ORGAO' : RGOrganController.text,
@@ -441,24 +485,18 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'ESTADO_UF_CTPS' : selectCTPSUF,
'NUM_PIS_PASEP' : PISController.text.isNotEmpty?int.parse(PISController.text):0,
'FL_RETIROU_CARTAO' : enableCityCard?'S':'N',
'NUM_NIS' : NISController.text.isNotEmpty?int.parse(NISController.text):0,
//aqui
'NUM_NIS' : NISController.text.isNotEmpty && NISController.text!=null && NISController.text.toLowerCase().trim()!='null' ?int.parse(NISController.text):0,
'NUM_PROT_CROSS' : '',
'RENDA_MENSAL' : incomeController.text.isNotEmpty?double.parse(incomeController.text.replaceAll('R\$ ', '').replaceAll('.', '').replaceAll(',', '.')):0,
'PROFISSAO' : professionalController.text,
'DT_OBITO' : dateDeathDB,
'DECLARACAO_OBITO' : '',
'BLOQUEIO' : enableBlocked?1:0,
'ORIGEM' : 'A',
'ORIGEM' : editing?'A':'C',
'DT_HORA_CADASTRO' : DateTime.now().toString(),
// 'ID_USUARIO_CADASTRO' : '',
//só quando for feito o atendimento domicíliar
'ID_DOMICILIO' : '',
//só quando for feito um atendimento
'ATENDIMENTOS' : '',
'SINCRONIZADO' : 'N',
};
await DbSqliteSync().insertCidadaos(row,editing?'update':'new',codSus,0).then((value){
await DbSqliteSync().insertCidadaos(row,editing?'update':'new',codSus).then((value){
if(checkCNS != 'ok' || CNSController.text.isEmpty){
AlertDialogDefault().alert(
context,
@@ -483,6 +521,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'OK'
);
setState(() {
edit = true;
showTab = true;
});
// print(value);
@@ -508,8 +547,6 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
}
getData()async{
// print('passou');
// print(widget.listData);
idCidadao = widget.listData[0]['ID_CIDADAO'];
codSus = widget.listData[0]['CD_USUARIO_SUS'];
nameController.text = widget.listData[0]['NOME_CIDADAO'];
@@ -525,6 +562,9 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
}
}
spouseController.text = widget.listData[0]['NOME_CONJUGE'];
if(spouseController.text.isNotEmpty){
enableSpouse = true;
}
selectNaturalityCod = widget.listData[0]['NACIONALIDADE'];
if(selectNaturalityCod==1){
selectNaturality = 'BRASILEIRO';
@@ -545,6 +585,18 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
selectBreed = ConstVariable().listBreed[i].title;
}
}
if(widget.listData[0]['ID_ETNIA_INDIGENA']!=null &&widget.listData[0]['ID_ETNIA_INDIGENA']!=''){
print('${widget.listData[0]['ID_ETNIA_INDIGENA']}');
for(int i = 0; listEtniasIndigenas.length >i;i++){
if(listEtniasIndigenas[i].cod == widget.listData[0]['ID_ETNIA_INDIGENA'].toString().trim()){
selectEtniaIndigena = DropDownDataStringModel(cod: listEtniasIndigenas[i].cod.toString().trim(), title: listEtniasIndigenas[i].title.toString().trim());
print('load');
print(selectEtniaIndigena!.cod);
print(selectEtniaIndigena!.title);
}
}
}
for(int i = 0;ConstVariable().listScooling.length >i;i++){
if(ConstVariable().listScooling[i].cod == widget.listData[0]['ID_ESCOLARIDADE']){
selectScoolingCod = ConstVariable().listScooling[i].cod;
@@ -582,7 +634,19 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
selectSubdivisionCOD = widget.listData[0]['CLASSIFICACAO_SUB']=='null'?0:widget.listData[0]['CLASSIFICACAO_SUB'];
}
numberFamilyController.text = widget.listData[0]['NUM_FAMILIA'].toString();
selectCountry = widget.listData[0]['ID_PAIS_RESID']==33?'BRASIL':'OUTRO';
if(widget.listData[0]['ID_PAIS_RESID']!=0 && widget.listData[0]['ID_PAIS_RESID']!=null){
for(int i = 0; ConstVariable().paises.length > i;i++){
if(ConstVariable().paises[i].ID_PAIS_RESID == widget.listData[0]['ID_PAIS_RESID']){
print('ID_PAIS_RESID');
print(widget.listData[0]['ID_PAIS_RESID']);
selectPaisResidencia = ConstVariable().paises[i].PAIS;
selectCountry = ConstVariable().paises[i];
// print(selectCountry!.ID_PAIS_RESID);
// print(selectCountry!.PAIS);
}
}
}
int codCity = widget.listData[0]['ID_MUNICIPIO_RESID'];
List listCity = await DBQuerys().buscaMunicipioporId(codCity);
cityController.text = listCity.length!=0?listCity[0]['NO_MUNICIPIO']+' - SP':'';
@@ -596,7 +660,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
}
List listTypeStreet = await DBQuerys().buscaTipoLogradouroPorId(idTipo);
selectTypeStreet = listTypeStreet[0]['NO_LOGR_TIPO'];
cepController.text = widget.listData[0]['CEP_LOGR'].toString()=='null'?'': widget.listData[0]['CEP_LOGR'].toString();
cepController.text = widget.listData[0]['CEP_LOGR'].toString()=='null'?'': cepfMaskFormatter.maskText(widget.listData[0]['CEP_LOGR'].toString());
numberController.text = widget.listData[0]['NUMERO_LOGR'].toString()??'';
// print('numberController');
// print(numberController.text);
@@ -621,22 +685,29 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
messageController.text = widget.listData[0]['NUM_RECADO'].toString()=='null'?'':widget.listData[0]['NUM_RECADO'].toString();
emailController.text = widget.listData[0]['EMAIL'];
observationController.text = widget.listData[0]['OBSERVACOES'];
CPFController.text = widget.listData[0]['CPF'].toString();
CPFController.text = cpfMaskFormatter.maskText(widget.listData[0]['CPF'].toString());
CNSController.text = widget.listData[0]['CNS'];
voterController.text = widget.listData[0]['TITULO_ELEITOR'].toString()??'';
RGController.text = widget.listData[0]['RG_NUMERO'].toString()=='null'?'':widget.listData[0]['RG_NUMERO'].toString();
RGComplementController.text = widget.listData[0]['RG_COMPLEMENTO'].toString();
selectRGUF = widget.listData[0]['RG_UF']??'';
voterController.text = widget.listData[0]['TITULO_ELEITOR']==null?'':widget.listData[0]['TITULO_ELEITOR'].toString()??'';
RGController.text = widget.listData[0]['RG_NUMERO'].toString()==null?'':widget.listData[0]['RG_NUMERO'].toString();
RGComplementController.text = widget.listData[0]['RG_COMPLEMENTO'].toString()==null?'':widget.listData[0]['RG_COMPLEMENTO'].toString();
selectRGUF = widget.listData[0]['RG_UF']??'--';
RGOrganController.text = widget.listData[0]['RG_ORGAO']==null?'':widget.listData[0]['RG_ORGAO'];
RGDateController.text = widget.listData[0]['RG_DATA_EMISSAO']==null?'':widget.listData[0]['RG_DATA_EMISSAO'];
RGDateDB = RGDateController.text;
selectTypeCertificateCod = widget.listData[0]['TIPO_CERTIDAO']??0;
if(widget.listData[0]['TIPO_CERTIDAO'] is int){
selectTypeCertificateCod = widget.listData[0]['TIPO_CERTIDAO'];
}else{
selectTypeCertificateCod = int.parse(widget.listData[0]['TIPO_CERTIDAO']=='' || widget.listData[0]['TIPO_CERTIDAO']==null?'0':widget.listData[0]['TIPO_CERTIDAO']);
}
for(int i = 0;ConstVariable().itensCertificate.length >i;i++){
if(ConstVariable().itensCertificate[i].cod == selectTypeCertificateCod){
selectTypeCertificate = ConstVariable().itensCertificate[i].title;
break;
}
break;
}
numberCertificateController.text = widget.listData[0]['NUM_CERTIDAO']??'';
nameCertificateController.text = widget.listData[0]['CARTORIO_CERTIDAO']??'';
bookCertificateController.text = widget.listData[0]['LIVRO_CERTIDAO']??'';
@@ -658,22 +729,27 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
setState(() {});
}
var cpfMaskFormatter = MaskTextInputFormatter(
mask: '###.###.###-##',
filter: { "#": RegExp(r'[0-9]') },
);
var cepfMaskFormatter = MaskTextInputFormatter(
mask: '##.###-###',
filter: { "#": RegExp(r'[0-9]') },
);
@override
void initState() {
super.initState();
searchCityBirthController.addListener(_searchCityBirth);
searchCityController.addListener(_searchCity);
getEtniasIndigenas();
getCity();
getUnit();
loadVillgeDB();
loadTypeStreetDB();
loadSubdivisionsDB();
loadLists();
if(widget.listData.length!=0){
getData();
edit = true;
showTab = true;
}
}
@override
@@ -683,16 +759,16 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: () async => await OnBackButton().onBackButton(context),
onWillPop:edit?null: () async => await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Cidadão'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Cidadão',widget.username),
body: Container(
height: double.infinity,
width: double.infinity,
decoration: ConstVariable().backgroundGradient,
child: ListView(
children: [
SubtitleAppbarCitizen(title: 1,edit: showTab,listData:widget.listData),
SubtitleAppbarCitizen(title: 1,edit: showTab,listData:widget.listData,username: widget.username),
showCheckError?Card(
margin: EdgeInsets.all(10),
child: Container(
@@ -748,7 +824,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
margin: EdgeInsets.all(10),
child: Column(
children: [
TitleContainers(title: 'Indentificação'),
TitleContainers(title: 'Identificação'),
Row(
children: [
Container(
@@ -856,6 +932,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
});
},
),
InputWithSubtitle(
controller: spouseController,
subtitle: 'Cônjuge',
@@ -867,6 +944,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
enabled: enableSpouse,
onChanged: (v)=>setState((){}),
),
selectMaritalStatus=='CASADO(A)'&& enableSpouse && mandatory?ErrorDefault():Container(),
DropdownWithSubtitle(
list: ConstVariable().listNationality,
subtitle: 'Naturalidade',
@@ -879,22 +957,70 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
setState(() {
selectNaturality = value!;
if(selectNaturality!='BRASILEIRO'){
selectCountry = null;
if(selectNaturality=='ESTRANGEIRO'){
selectNaturalityCod = 2;
}else{
selectNaturalityCod = 3;
}
cityBirthController.text = 'MUNICIPIO IGNORADO - SP';
cityBirthController.text = 'MUNICIPIO IGNORADO';
}else{
cityBirthController.text = '';
selectNaturalityCod = 1;
selectCountry = PaisModelo(ID_PAIS_RESID: 33, PAIS: 'BRASIL');
}
});
},
),
selectNaturality==null&& mandatory?ErrorDefault():Container(),
!showSelectCountry?GestureDetector(
onTap: ()=>setState(()=>showSelectCountry=true),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: width*0.7,
child: TitleInput(title:'País de Nascimento')
),
Container(
padding: EdgeInsets.only(left: 10),
width: width*0.7,
alignment: Alignment.centerLeft,
height: 50,
color: Colors.white,
child: TextDefault(
color: Colors.black,
fontSize: 15,
text:selectCountry==null?'SELECIONE UM PAÍS': selectCountry!.PAIS
),
),
],
)
):
Column(
children: [
Container(
width: width*0.7,
child: TitleInput(title:'País de Nascimento')
),
DropDownButtonComPesquisaPaises(
list: ConstVariable().paises,
title: 'Pesquise o país',
select: selectCountry,
width: width*0.7,
onChanged: ( dynamic value){
setState(() {
selectCountry = value;
print(value.PAIS);
print(value.ID_PAIS_RESID);
showSelectCountry = false;
});
},
),
],
),
GestureDetector(
onTap: cityBirthController.text == 'MUNICIPIO IGNORADO - SP' || edit?null:(){
onTap: cityBirthController.text == 'MUNICIPIO IGNORADO' || edit?null:(){
searchCityController.text = '';
searchCityBirthController.text = '';
searchCity('birth');
@@ -992,6 +1118,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
for(int i = 0;ConstVariable().listBreed.length >i;i++){
if(ConstVariable().listBreed[i].title == selectBreed){
selectBreedCod = ConstVariable().listBreed[i].cod;
selectEtniaIndigena = null;
print(selectBreedCod);
}
}
@@ -999,6 +1126,20 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
},
),
selectBreed==null&& mandatory?ErrorDefault():Container(),
DropDownEtniaIndigena(
title: 'Etnia Indígena',
width: width*0.69,
list: listEtniasIndigenas,
select: selectEtniaIndigena,
onChanged:!edit&&selectBreedCod!=5?null: (value){
setState(() {
selectEtniaIndigena = value!;
print(selectEtniaIndigena!.cod);
print(selectEtniaIndigena!.title);
});
},
),
selectBreedCod==5 &&selectEtniaIndigena==null && mandatory?ErrorDefault():Container(),
DropdownWithSubtitle(
list: listScooling,
subtitle: 'Escolaridade',
@@ -1052,6 +1193,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
enabled: !enableMother && !edit,
onChanged: (v)=>setState((){}),
),
!enableMother && nameMotherController.text.isEmpty && mandatory?ErrorDefault():Container(),
SwitchWithSubtitle(
width: width*0.65,
title: 'Desconhece Mãe',
@@ -1077,6 +1219,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
enabled: !enableFather && !edit,
onChanged: (v)=>setState((){}),
),
!enableFather&& nameFatherController.text.isEmpty && mandatory?ErrorDefault():Container(),
SwitchWithSubtitle(
width: width*0.65,
title: 'Desconhece Pai',
@@ -1181,7 +1324,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
selectClassificationCOD = 1;
}
changedCity();
selectCountry = 'BRASIL';
selectCountry = PaisModelo(ID_PAIS_RESID: 33, PAIS: 'BRASIL');
}
setState(() {});
},
@@ -1217,6 +1360,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
children: [
TitleContainers(title: 'Endereço'),
Row(
mainAxisSize: MainAxisSize.min,
children: [
Container(
height: height*0.4,
@@ -1228,17 +1372,17 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
mainAxisSize: MainAxisSize.min,
children: [
DropdownWithSubtitle(
subtitle: 'Pais de Residência',
select: selectCountry,
subtitle: 'País de Residência',
select: selectPaisResidencia,
widthSubtitle: width*0.6,
widthDropdown: width*0.69,
widthContainerDropdown: width*0.6,
hintDropdown: 'Pais de Residência',
hintDropdown: 'País de Residência',
onChanged:selectClassification!='OUTRO MUNICIPIO'?null:(value){
setState(() {
selectCountry = value;
if(selectCountry=='OUTRO'){
cityController.text= 'MUNICIPIO IGNORADO - SP';
selectPaisResidencia = value;
if(selectPaisResidencia=='OUTRO'){
cityController.text= 'MUNICIPIO IGNORADO';
resultListResid = [{"ID_MUNICIPIO":1,"CODIGO_IBGE":"000000","NO_MUNICIPIO":"MUNICIPIO IGNORADO","UF_ESTADO":"--","ID_PAIS":33}];
codIBGEController.text = '000000';
numberController.clear();
@@ -1266,9 +1410,9 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
'OUTRO',
]
),
selectCountry==null&& mandatory?ErrorDefault():Container(),
selectPaisResidencia==null&& mandatory?ErrorDefault():Container(),
GestureDetector(
onTap: selectClassification!='OUTRO MUNICIPIO'|| cityController.text == 'MUNICIPIO IGNORADO - SP'?null: (){
onTap: selectClassification!='OUTRO MUNICIPIO'|| cityController.text == 'MUNICIPIO IGNORADO'?null: (){
searchCityController.text = '';
searchCityBirthController.text = '';
searchCity('city');
@@ -1403,7 +1547,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
},
list: typeStreetDB
),
selectTypeStreet!='OUTRO MUNICIPIO' && selectTypeStreet == null && selectCountry == null&& mandatory?ErrorDefault():Container(),
selectClassification!='OUTRO MUNICIPIO' && selectTypeStreet == null && selectCountry == null && mandatory?ErrorDefault():Container(),
DropdownWithSubtitle(
subtitle: 'Nome do Logradouro',
select: selectStreet,
@@ -1422,14 +1566,30 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
typeInput: 'cep',
controller: cepController,
subtitle: 'CEP(só números)',
errorInput: selectClassification!='OUTRO MUNICIPIO'&& cepController.text.isEmpty?'Campo Obrigatório':cepController.text.length!=8?'CEP incorreto':'',
errorInput: selectClassification!='OUTRO MUNICIPIO'&& cepController.text.isEmpty?'Campo Obrigatório':cepController.text.length!=10?'CEP incorreto':'',
labelInput: 'CEP(só números)',
widthInput: width*0.7,
widthSubtitle: width*0.2,
hintInput: 'Escreva aqui',
mandatory: mandatory,
maxLength: 10,
enabled: selectClassification!='OUTRO MUNICIPIO' && !edit?true:false,
onChanged: (v)=>setState((){}),
textInputType: TextInputType.number,
inputFormatters: [
FilteringTextInputFormatter.digitsOnly,
CepInputFormatter()
],
onChanged: (v){
if(cepController.text.length==10){
checkCEP = '';
}else{
checkCEP = 'CEP incompleto';
}
setState((){});
},
),
checkCEP==''?Container():Container(
width: width*0.7,child: TextDefault(text: checkCEP,fontSize: 15,color: ColorPalette.red,)
),
Container(
width: width*0.7,
@@ -1454,7 +1614,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
setState(() {
checkBoxNumber = value!;
if(checkBoxNumber){
numberController.text = '0';
numberController.text = 'S/N';
}else{
numberController.clear();
}
@@ -1559,9 +1719,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
labelInput: 'Telefone - DDD',
widthInput: width*0.7,
widthSubtitle: width*0.7,
maxLength: 3,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: false,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1569,11 +1732,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'Telefone (Só Números)',
errorInput: 'Campo Obrigatório',
labelInput: 'Telefone(Só Números)',
maxLength: 8,
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: false,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1584,32 +1750,42 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
maxLength: 3,
enabled: !edit,
mandatory: false,
mandatory: mandatory,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
selectDeficiency==null&& mandatory?ErrorDefault():Container(),
InputWithSubtitle(
controller: mobileController,
subtitle: 'Celular (Só Números)',
errorInput: 'Campo Obrigatório',
labelInput: 'Celular (Só Números)',
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: false,
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
controller: messageDDDController,
subtitle: 'Recado - DDD',
errorInput: 'Campo Obrigatório',
labelInput: 'Recado - DDD',
maxLength: 9,
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: mandatory,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
selectDeficiency==null&& mandatory?ErrorDefault():Container(),
InputWithSubtitle(
controller: messageDDDController,
subtitle: 'Recado - DDD',
errorInput: 'Campo Obrigatório',
labelInput: 'Recado - DDD',
maxLength: 3,
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1617,11 +1793,13 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'Recado (Só Números)',
errorInput: 'Campo Obrigatório',
labelInput: 'Recado (Só Números)',
maxLength: 9,
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
enabled: !edit,
mandatory: mandatory,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1634,8 +1812,19 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
hintInput: 'Escreva aqui',
mandatory: false,
enabled: !edit,
onChanged: (v)=>setState((){}),
textInputType: TextInputType.emailAddress,
onChanged: (v){
if(emailController.text.contains('@') && emailController.text.contains('.')){
checkEmail = '';
}else{
checkEmail = 'E-mail incompleto';
}
setState((){});
},
),
checkEmail==''?Container():Container(
width: width*0.7,child: TextDefault(text: checkEmail,fontSize: 15,color: ColorPalette.red,)
)
],
),
),
@@ -1709,7 +1898,13 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
mandatory: false,
maxLength: 14,
enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [
FilteringTextInputFormatter.digitsOnly,
CpfInputFormatter()
],
onChanged: (v)async{
if(CPFController.text.isNotEmpty){
checkCPF = await MainControllers().validaCPF(v,editing);
@@ -1730,8 +1925,11 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
maxLength: 15,
mandatory: false,
enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)async{
//783107557570002
if(CNSController.text.isNotEmpty){
@@ -1762,11 +1960,14 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
subtitle: 'RG',
errorInput: 'Campo Obrigatório',
labelInput: 'RG',
maxLength: 9,
widthInput: width*0.7,
widthSubtitle: width*0.7,
hintInput: 'Escreva aqui',
mandatory: false,
enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly],
onChanged: (v)=>setState((){}),
),
InputWithSubtitle(
@@ -1776,9 +1977,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
labelInput: 'RG - Complemento',
widthInput: width*0.7,
widthSubtitle: width*0.7,
maxLength: 1,
hintInput: 'Escreva aqui',
mandatory: false,
enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly],
onChanged: (v)=>setState((){}),
),
DropdownWithSubtitle(
@@ -1960,6 +2164,10 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
mandatory: false,
enabled: !edit,
onChanged: (v)=>setState((){}),
textInputType: TextInputType.number,
inputFormatters: [
FilteringTextInputFormatter.digitsOnly,
],
),
InputWithSubtitle(
controller: numberCTPSController,
@@ -1971,6 +2179,8 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
hintInput: 'Escreva aqui',
mandatory: false,
enabled: !edit,
textInputType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
onChanged: (v)=>setState((){}),
),
DropdownWithSubtitle(
@@ -2046,7 +2256,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
mainAxisSize: MainAxisSize.min,
children: [
Container(
color: ColorPalette.white,
color: edit?Colors.grey[200]:ColorPalette.disable,
margin: EdgeInsets.only(top: 5),
width: width*0.7,
child: TextFormField(

View File

@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/service/db/db_querys.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/title_containers.dart';
@@ -18,7 +19,8 @@ import '../../widgets/switch_with_subtitle.dart';
import '../../widgets/text_default.dart';
class RegisterHomeScreen extends StatefulWidget {
List listData;
RegisterHomeScreen({required this.listData});
String username;
RegisterHomeScreen({required this.listData, required this.username});
@override
State<RegisterHomeScreen> createState() => _RegisterHomeScreenState();
@@ -32,7 +34,17 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
var NOME_RESP_CADASTRO = TextEditingController();
var CNES_RESP_CADASTRO = TextEditingController();
var DT_CADASTRO = TextEditingController();
var RENDA_TOTAL_FAMILIAR = TextEditingController();
var RENDA_MENSAL = TextEditingController();
var ANO_VEICULO = TextEditingController();
var MODELO_VEICULO = TextEditingController();
var VALOR_PARCELA_FINANCIAMENTO = TextEditingController();
var VALOR_PARCELA_EMPRESTIMO = TextEditingController();
var PROFISSAO = TextEditingController();
bool POSSUI_FINANCIAMENTO = false;
bool POSSUI_EMPRESTIMO = false;
bool POSSUI_VEICULO = false;
bool FORA_AREA = false;
bool DISPONIBILIDADE_ENERGIA = false;
bool FL_ANIMAIS = false;
@@ -60,8 +72,9 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
List<String> listSanitary = [];
List<String> listCBO = [];
List<String> listINEPROF = [];
List listaINE = [];
String idUsuario = '';
int idUsuario = 0;
String idUnidade = '';
String nomeUnidade = '';
String INE_DB='';
@@ -109,9 +122,11 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
escolherprazoInicio(BuildContext context) async {
var pickDate = await showDatePicker(
context: context,
locale: Locale('pt','BR'),
initialDate: DateTime.now(),
firstDate: DateTime(2022),
lastDate: DateTime(2025));
lastDate: DateTime(DateTime.now().year,12,31)
);
if (pickDate != null) {
setState(() {
date_cad = '${pickDate.year}-${pickDate.month<10?'0':''}${pickDate.month}-${pickDate.day<10?'0':''}${pickDate.day}';
@@ -128,14 +143,14 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
getUser(){
final PrefService _prefService = PrefService();
_prefService.readCacheIdUsuario('idUsuario').then((value){
_prefService.readCacheIDUser().then((value){
if(value != null){
idUsuario = value;
idUsuario = int.parse(value);
}
});
_prefService.readCacheUnidade('idUnidade').then((value){
_prefService.readCacheUnidade().then((value){
if(value!=null){
idUnidade = value[0];
idUnidade = value[0].toString();
nomeUnidade = value[1];
}
loadLists();
@@ -180,11 +195,32 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
}
loadRegisterHome()async{
ID_DOMICILIO = widget.listData[0]['ID_DOMICILIO'];
//dados
PROFISSAO.text = widget.listData[0]['PROFISSAO']??'';
RENDA_TOTAL_FAMILIAR.text = widget.listData[0]['RENDA_TOTAL_FAMILIAR']==null?'0,00':'${widget.listData[0]['RENDA_TOTAL_FAMILIAR'].toString().replaceAll('.', ',')}';
MODELO_VEICULO.text = widget.listData[0]['MODELO_VEICULO'];
ANO_VEICULO.text = widget.listData[0]['ANO_VEICULO'].toString();
VALOR_PARCELA_FINANCIAMENTO.text = widget.listData[0]['VALOR_PARCELA_FINANCIAMENTO'].toString().replaceAll('.', ',');
VALOR_PARCELA_EMPRESTIMO.text = widget.listData[0]['VALOR_PARCELA_EMPRESTIMO'].toString().replaceAll('.', ',');
RENDA_MENSAL.text = widget.listData[0]['RENDA_MENSAL']==null?'0,00':'${widget.listData[0]['RENDA_MENSAL'].toString().replaceAll('.', ',')}';
POSSUI_VEICULO = widget.listData[0]['POSSUI_VEICULO']=='S'?true:false;
POSSUI_FINANCIAMENTO = widget.listData[0]['POSSUI_FINANCIAMENTO']=='S'?true:false;
POSSUI_EMPRESTIMO = widget.listData[0]['POSSUI_EMPRESTIMO']=='S'?true:false;
// print(RENDA_TOTAL_FAMILIAR.text);
// print(MODELO_VEICULO.text);
// print(ANO_VEICULO.text);
// print(VALOR_PARCELA_FINANCIAMENTO.text);
// print(VALOR_PARCELA_EMPRESTIMO.text);
// print(POSSUI_VEICULO);
// print(POSSUI_FINANCIAMENTO);
// print(POSSUI_EMPRESTIMO);
ID_DOMICILIO = widget.listData[0]['ID_DOMICILIO']==null || widget.listData[0]['ID_DOMICILIO'] == ''?0:widget.listData[0]['ID_DOMICILIO'];
ID_CIDADAO = widget.listData[0]['ID_CIDADAO'];
CD_USUARIO_SUS = widget.listData[0]['CD_USUARIO_SUS'];
DBQuerys().buscaCadDomiciliar(ID_DOMICILIO).then((dataHome)async{
TIPO_IMOVEL_COD = dataHome[0]['TIPO_IMOVEL']??0;
TIPO_IMOVEL_COD = ID_DOMICILIO==0?0:dataHome[0]['TIPO_IMOVEL']??0;
if(dataHome.length!=0){
TIPO_SALVAR = 'update';
}
@@ -193,90 +229,93 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
TIPO_IMOVEL = ConstVariable().listTypeHome[i].title;
}
}
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
ID_AREA_DOMICILIO = list[0]['AREA'];
ID_MICROAREA_DOMICILIO = list[0]['MICROAREA'];
INE_DB = list[0]['INE'];
listaINE = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
print('lista');
print(listaINE);
ID_AREA_DOMICILIO = listaINE[0]['AREA'];
ID_MICROAREA_DOMICILIO = listaINE[0]['MICROAREA'];
ID_EQUIPE = listaINE[0]['ID_EQUIPE'];
INE_DB = listaINE[0]['INE'];
INE = 'INE: $INE_DB / Área: $ID_AREA_DOMICILIO - Microárea : $ID_MICROAREA_DOMICILIO';
listINE.add(INE!);
FORA_AREA = dataHome[0]['FORA_AREA']==1?true:false;
SITUACAO_MORADIA_COD = dataHome[0]['SITUACAO_MORADIA']??0;
FORA_AREA = dataHome.length==0?false:dataHome[0]['FORA_AREA']==1?true:false;
SITUACAO_MORADIA_COD = dataHome.length==0?0:dataHome[0]['SITUACAO_MORADIA']??0;
for (int i = 0; ConstVariable().listSituationHome.length > i; i++) {
if (ConstVariable().listSituationHome[i].cod == SITUACAO_MORADIA_COD) {
SITUACAO_MORADIA = ConstVariable().listSituationHome[i].title;
}
}
TIPO_LOCALIDADE_COD = dataHome[0]['TIPO_LOCALIDADE']??0;
TIPO_LOCALIDADE_COD = dataHome.length==0?0:dataHome[0]['TIPO_LOCALIDADE']??0;
for (int i = 0; ConstVariable().listTypeLocation.length > i; i++) {
if (ConstVariable().listTypeLocation[i].cod == TIPO_LOCALIDADE_COD) {
TIPO_LOCALIDADE = ConstVariable().listTypeLocation[i].title;
}
}
TIPO_DOMICILIO_COD = dataHome[0]['TIPO_DOMICILIO']??0;
TIPO_DOMICILIO_COD =dataHome.length==0?0: dataHome[0]['TIPO_DOMICILIO']??0;
for (int i = 0; ConstVariable().listTypeResidence.length > i; i++) {
if (ConstVariable().listTypeResidence[i].cod == TIPO_DOMICILIO_COD) {
TIPO_DOMICILIO = ConstVariable().listTypeResidence[i].title;
}
}
NUM_MORADORES.text = dataHome[0]['NUM_MORADORES'].toString()=='null'?'':dataHome[0]['NUM_MORADORES'].toString();
NUM_COMODOS.text = dataHome[0]['NUM_COMODOS'].toString()=='null'?'':dataHome[0]['NUM_COMODOS'].toString();
SITUACAO_RURAL_COD = dataHome[0]['SITUACAO_RURAL']??0;
NUM_MORADORES.text = dataHome.length==0?'':dataHome[0]['NUM_MORADORES'].toString()=='null'?'':dataHome[0]['NUM_MORADORES'].toString();
NUM_COMODOS.text = dataHome.length==0?'':dataHome[0]['NUM_COMODOS'].toString()=='null'?'':dataHome[0]['NUM_COMODOS'].toString();
SITUACAO_RURAL_COD = dataHome.length==0?0:dataHome[0]['SITUACAO_RURAL']??0;
for (int i = 0; ConstVariable().listSituationRural.length > i; i++) {
if (ConstVariable().listSituationRural[i].cod == SITUACAO_RURAL_COD) {
SITUACAO_RURAL = ConstVariable().listSituationRural[i].title;
}
}
TIPO_ACESSO_COD = dataHome[0]['TIPO_ACESSO']??0;
TIPO_ACESSO_COD = dataHome.length==0?0:dataHome[0]['TIPO_ACESSO']??0;
for (int i = 0; ConstVariable().listTypeAcessHome.length > i; i++) {
if (ConstVariable().listTypeAcessHome[i].cod == TIPO_ACESSO_COD) {
TIPO_ACESSO = ConstVariable().listTypeAcessHome[i].title;
}
}
MAT_PREDOMINANTE_COD = dataHome[0]['MAT_PREDOMINANTE']??0;
MAT_PREDOMINANTE_COD = dataHome.length==0?0:dataHome[0]['MAT_PREDOMINANTE']??0;
for (int i = 0; ConstVariable().listMaterialHome.length > i; i++) {
if (ConstVariable().listMaterialHome[i].cod == MAT_PREDOMINANTE_COD) {
MAT_PREDOMINANTE = ConstVariable().listMaterialHome[i].title;
}
}
DISPONIBILIDADE_ENERGIA = dataHome[0]['DISPONIBILIDADE_ENERGIA']==1?true:false;
TIPO_ABASTECIMENTO_COD = dataHome[0]['TIPO_ABASTECIMENTO']??0;
DISPONIBILIDADE_ENERGIA = dataHome.length==0?false:dataHome[0]['DISPONIBILIDADE_ENERGIA']==1?true:false;
TIPO_ABASTECIMENTO_COD = dataHome.length==0?0:dataHome[0]['TIPO_ABASTECIMENTO']??0;
for (int i = 0; ConstVariable().listWaterHome.length > i; i++) {
if (ConstVariable().listWaterHome[i].cod == TIPO_ACESSO_COD) {
TIPO_ABASTECIMENTO = ConstVariable().listWaterHome[i].title;
}
}
TRATAMENTO_AGUA_COD = dataHome[0]['TRATAMENTO_AGUA']??0;
TRATAMENTO_AGUA_COD = dataHome.length==0?0:dataHome[0]['TRATAMENTO_AGUA']??0;
for (int i = 0; ConstVariable().listWaterHome.length > i; i++) {
if (ConstVariable().listWaterTreatment[i].cod == TRATAMENTO_AGUA_COD) {
TRATAMENTO_AGUA = ConstVariable().listWaterTreatment[i].title;
}
}
DESTINO_LIXO_COD = dataHome[0]['DESTINO_LIXO']??0;
DESTINO_LIXO_COD = dataHome.length==0?0:dataHome[0]['DESTINO_LIXO']??0;
for (int i = 0; ConstVariable().listDestinyTrash.length > i; i++) {
if (ConstVariable().listDestinyTrash[i].cod == DESTINO_LIXO_COD) {
DESTINO_LIXO = ConstVariable().listDestinyTrash[i].title;
}
}
ESCOAMENTO_COD = dataHome[0]['ESCOAMENTO']??0;
ESCOAMENTO_COD = dataHome.length==0?0:dataHome[0]['ESCOAMENTO']??0;
for (int i = 0; ConstVariable().listSanitary.length > i; i++) {
if (ConstVariable().listSanitary[i].cod == ESCOAMENTO_COD) {
ESCOAMENTO = ConstVariable().listSanitary[i].title;
}
}
FL_ANIMAIS = dataHome[0]['FL_ANIMAIS']==1?true:false;
ANIMAIS_GATO = dataHome[0]['ANIMAIS_GATO']==1?true:false;
ANIMAIS_CACHORRO = dataHome[0]['ANIMAIS_CACHORRO']==1?true:false;
ANIMAIS_PASSARO = dataHome[0]['ANIMAIS_PASSARO']==1?true:false;
QTDE_ANIMAIS.text = dataHome[0]['QTDE_ANIMAIS']==null?'':dataHome[0]['QTDE_ANIMAIS'].toString();
date_cad = dataHome[0]['DT_CADASTRO']??'';
FL_ANIMAIS = dataHome.length==0?false:dataHome[0]['FL_ANIMAIS']==1?true:false;
ANIMAIS_GATO = dataHome.length==0?false:dataHome[0]['ANIMAIS_GATO']==1?true:false;
ANIMAIS_CACHORRO = dataHome.length==0?false:dataHome[0]['ANIMAIS_CACHORRO']==1?true:false;
ANIMAIS_PASSARO = dataHome.length==0?false:dataHome[0]['ANIMAIS_PASSARO']==1?true:false;
QTDE_ANIMAIS.text = dataHome.length==0?'':dataHome[0]['QTDE_ANIMAIS']==null?'':dataHome[0]['QTDE_ANIMAIS'].toString();
date_cad = dataHome.length==0?'':dataHome[0]['DT_CADASTRO']??'';
List splitted = date_cad.toString().split('-');
DT_CADASTRO.text = splitted.length<2?'':'${splitted[2]}/${splitted[1]}/${splitted[0]}';
ID_EQUIPE = dataHome[0]['ID_EQUIPE']??0;
NOME_INSTITUICAO_PERMANENCIA = dataHome[0]['NOME_INSTITUICAO_PERMANENCIA'];
PROFISSIONAIS_VINCULADOS_INST = dataHome[0]['PROFISSIONAIS_VINCULADOS_INST'];
RESPONSAVEL_TECNICO_INST = dataHome[0]['RESPONSAVEL_TECNICO_INST'];
CARGO_RESP_TECNICO_INST = dataHome[0]['CARGO_RESP_TECNICO_INST'];
TEL_RESP_TECNICO_INST = dataHome[0]['TEL_RESP_TECNICO_INST'];
ID_EQUIPE = dataHome.length==0?0:dataHome[0]['ID_EQUIPE']??0;
NOME_INSTITUICAO_PERMANENCIA = dataHome.length==0?'':dataHome[0]['NOME_INSTITUICAO_PERMANENCIA'];
PROFISSIONAIS_VINCULADOS_INST = dataHome.length==0?'':dataHome[0]['PROFISSIONAIS_VINCULADOS_INST'];
RESPONSAVEL_TECNICO_INST = dataHome.length==0?'':dataHome[0]['RESPONSAVEL_TECNICO_INST'];
CARGO_RESP_TECNICO_INST = dataHome.length==0?'':dataHome[0]['CARGO_RESP_TECNICO_INST'];
TEL_RESP_TECNICO_INST = dataHome.length==0?'':dataHome[0]['TEL_RESP_TECNICO_INST'];
await DBQuerys().buscaCBOProfissional(idUsuario).then((list){
if(list.length!=0){
for(int i = 0; list.length>i;i++){
@@ -286,20 +325,22 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
CBO_RESP_CADASTRO = list.length == 0?null:list[0]['CODIGO_CBO'].toString();
setState(() {});
});
await DBQuerys().buscaProfissionalCadInd(dataHome[0]['ID_RESP_CADASTRO']).then((list)async{
ID_RESP_CADASTRO = list['ID_PROFISSIONAL'];
NOME_RESP_CADASTRO.text = list['NOME_PROFISSIONAL'];
String CNS_PROFISSIONAL = list['CNS_PROFISSIONAL'];
CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(list['ID_UNIDADE']);
print(list);
if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){
CNS_VALIDO = true;
}
});
});
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
for(int i=0; list.length > i;i++){
INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}';
listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}');
INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} ${list[i]['MICROAREA']==null?'':'- Microárea : ${list[i]['MICROAREA']}'}';
listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} ${list[i]['MICROAREA']==null?'':'- Microárea : ${list[i]['MICROAREA']}'}');
}
await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list){
ID_RESP_CADASTRO = list['ID_PROFISSIONAL'];
NOME_RESP_CADASTRO.text = list['NOME_PROFISSIONAL'];
String CNS_PROFISSIONAL = list['CNS_PROFISSIONAL'];
if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){
CNS_VALIDO = true;
}
});
setState(() {});
}
@@ -323,7 +364,39 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
}
saveCitizenHome()async{
Map<String, dynamic> row = {
//save
final f = new DateFormat('yyyy-MM-dd HH:mm:ss');
Map<String, dynamic> rowCitizen = {
'PROFISSAO' : PROFISSAO.text.trim(),
'RENDA_TOTAL_FAMILIAR' : double.parse(RENDA_TOTAL_FAMILIAR.text.trim().replaceAll('.','').replaceAll(',', '.')),
'MODELO_VEICULO' : MODELO_VEICULO.text.trim(),
'ANO_VEICULO' : int.parse(ANO_VEICULO.text.trim().replaceAll('.', '')),
'VALOR_PARCELA_FINANCIAMENTO' : VALOR_PARCELA_FINANCIAMENTO.text.trim().replaceAll('.','').replaceAll(',', '.'),
'VALOR_PARCELA_EMPRESTIMO' : VALOR_PARCELA_EMPRESTIMO.text.trim().replaceAll('.','').replaceAll(',', '.'),
'RENDA_MENSAL' : RENDA_MENSAL.text.trim().replaceAll('.','').replaceAll(',', '.'),
'POSSUI_VEICULO' : POSSUI_VEICULO?'S':'N',
'POSSUI_FINANCIAMENTO' : POSSUI_FINANCIAMENTO?'S':'N',
'POSSUI_EMPRESTIMO' : POSSUI_EMPRESTIMO?'S':'N',
'DT_HORA_CADASTRO' : '${f.format(DateTime.now())}',
'ORIGEM' : TIPO_SALVAR!='new'?'A':'C',
'SINCRONIZADO' : 'N',
};
RegExp regex = RegExp(r'INE:\s*(\d+)');
String? ineNumber = regex.firstMatch(INE!)?.group(1);
int ID_UNIDADE = 0;
for (int i = 0; listaINE.length > i; i++) {
if (listaINE[i]['INE'] == ineNumber) {
ID_EQUIPE = listaINE[i]['ID_EQUIPE'];
INE_DB = listaINE[i]['INE'];
ID_UNIDADE = listaINE[i]['ID_UNIDADE'];
print(listaINE[i]);
}
}
var CNES_UNIDADE = await DBQuerys().cnesUnidade(ID_UNIDADE);
Map<String, dynamic> rowHome = {
'TIPO_IMOVEL' : TIPO_IMOVEL_COD,
'ID_AREA_DOMICILIO' : ID_AREA_DOMICILIO,
'ID_MICROAREA_DOMICILIO' : ID_MICROAREA_DOMICILIO,
@@ -332,7 +405,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
'TIPO_LOCALIDADE' : TIPO_LOCALIDADE_COD,
'TIPO_DOMICILIO' : TIPO_DOMICILIO_COD,
'NUM_MORADORES' : int.parse(NUM_MORADORES.text),
'NUM_COMODOS' : int.parse(NUM_COMODOS.text),
'NUM_COMODOS' : NUM_COMODOS.text.isEmpty?0:int.parse(NUM_COMODOS.text),
'SITUACAO_RURAL' : SITUACAO_RURAL_COD,
'TIPO_ACESSO' : TIPO_ACESSO_COD,
'MAT_PREDOMINANTE' : MAT_PREDOMINANTE_COD,
@@ -349,11 +422,11 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
'QTDE_ANIMAIS' : QTDE_ANIMAIS.text.isEmpty?0:int.parse(QTDE_ANIMAIS.text),
'CBO_RESP_CADASTRO' : CBO_RESP_CADASTRO,
'ID_RESP_CADASTRO' : ID_RESP_CADASTRO,
'CNES_RESP_CADASTRO' : CNES_RESP_CADASTRO.text,
'INE_RESP_CADASTRO' : INE,
'CNES_RESP_CADASTRO' : CNES_UNIDADE,
'INE_RESP_CADASTRO' : INE_DB,
'DT_CADASTRO' : date_cad,
'ID_EQUIPE' : ID_EQUIPE,
'ORIGEM' : 'A',
'ORIGEM' : TIPO_SALVAR!='new'?'A':'C',
'SINCRONIZADO' : 'N',
'NOME_INSTITUICAO_PERMANENCIA': NOME_INSTITUICAO_PERMANENCIA,
'PROFISSIONAIS_VINCULADOS_INST': PROFISSIONAIS_VINCULADOS_INST,
@@ -361,16 +434,23 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
'CARGO_RESP_TECNICO_INST' : CARGO_RESP_TECNICO_INST,
'TEL_RESP_TECNICO_INST' : TEL_RESP_TECNICO_INST,
};
await DbSqliteSync().insertCadastrosDomiciliares(row,TIPO_SALVAR,ID_DOMICILIO,ID_CIDADAO,CD_USUARIO_SUS,0).then((value){
AlertDialogDefault().alert(
context,
'Aviso',
TIPO_SALVAR!='new'?
'Cadastro Domiciliar alterado com sucesso!':
'Cadastro Domiciliar realizado com sucesso!',
'OK'
);
// print(value);
await DbSqliteSync().insertCadastrosDomiciliares(rowHome,TIPO_SALVAR,ID_DOMICILIO,ID_CIDADAO,CD_USUARIO_SUS).then((value)async{
await DbSqliteSync().insertCidadaos(rowCitizen,editing?'update':'new',widget.listData[0]['CD_USUARIO_SUS']).then((value){
edit = false;
setState(() {});
AlertDialogDefault().alert(
context,
'Aviso',
TIPO_SALVAR!='new'?
'Cadastro Domiciliar alterado com sucesso!':
'Cadastro Domiciliar realizado com sucesso!',
'OK'
);
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (route) => false);
// print(value);
});
});
}
@@ -387,16 +467,16 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()async => await OnBackButton().onBackButton(context),
onWillPop: !edit?null:()async => await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Domiciliar'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Domiciliar',widget.username),
body: Container(
height: double.infinity,
width: double.infinity,
decoration: ConstVariable().backgroundGradient,
child: ListView(
children: [
SubtitleAppbarCitizen(title: 3,edit: true,listData: widget.listData),
SubtitleAppbarCitizen(title: 3,edit: true,listData: widget.listData,username: widget.username),
showCheckError?Card(
margin: EdgeInsets.all(10),
child: Container(
@@ -490,7 +570,23 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
select: INE,
widthDropdown: width*0.7,
widthContainerDropdown: width*0.6,
onChanged: !editing?null: (value)=>setState(()=>INE = value!),
onChanged: !editing?null: (value){
print(value);
setState(()=>INE = value!);
RegExp regex = RegExp(r'INE:\s*(\d+)');
String? ineNumber = regex.firstMatch(value)?.group(1);
for (int i = 0; listaINE.length > i; i++) {
if (listaINE[i]['INE'] == ineNumber) {
ID_EQUIPE = listaINE[i]['ID_EQUIPE'];
INE_DB = listaINE[i]['INE'];
// SITUACAO_MORADIA_COD = ConstVariable().listSituationHome[i].cod;
print('ID_EQUIPE $ID_EQUIPE');
print('INE_DB $INE_DB');
}
}
},
),
SwitchWithSubtitle(
width: width*0.7,
@@ -513,9 +609,12 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
widthContainerDropdown: width*0.6,
onChanged:!editing?null: (value){
setState(()=>SITUACAO_MORADIA = value!);
print('modou para $SITUACAO_MORADIA_COD');
print('modou para $SITUACAO_MORADIA');
for (int i = 0; ConstVariable().listSituationHome.length > i; i++) {
if (ConstVariable().listSituationHome[i].title == TIPO_IMOVEL) {
if (ConstVariable().listSituationHome[i].title == SITUACAO_MORADIA) {
SITUACAO_MORADIA_COD = ConstVariable().listSituationHome[i].cod;
print('modou para dentro do for $SITUACAO_MORADIA_COD');
}
}
},
@@ -631,7 +730,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
),
SwitchWithSubtitle(
width: width*0.7,
title: 'Disponibilidade de Energia Elétroca',
title: 'Disponibilidade de Energia Elétrica',
value: DISPONIBILIDADE_ENERGIA,
onChanged:!editing?null: (value)=>setState(()=>DISPONIBILIDADE_ENERGIA = value),
),
@@ -756,7 +855,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
margin: EdgeInsets.all(10),
child: Column(
children: [
TitleContainers(title: 'Outros'),
TitleContainers(title: 'Profissional Responsável'),
Row(
children: [
Container(
@@ -840,6 +939,177 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
],
),
),
Card(
margin: EdgeInsets.all(10),
child: Column(
children: [
TitleContainers(title: 'Outros'),
Row(
children: [
Container(
height: heigth*0.4,
width: width*0.2,
child: Icon(Icons.tag,size: 80,),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 0.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: 'R\$',color: Colors.black87)),
InputWithSubtitle(
controller: RENDA_MENSAL,
subtitle: 'Renda Mensal',
errorInput: 'Campo Obrigatório',
labelInput: 'Renda Mensal',
widthInput: width*0.65,
widthSubtitle: width*0.65,
hintInput: 'Escreva aqui',
enabled: editing,
onChanged: (v)=>setState((){}),
),
],
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: '',color: Colors.black87)),
InputWithSubtitle(
controller: PROFISSAO,
subtitle: 'Profissão',
errorInput: 'Campo Obrigatório',
labelInput: 'Profissão',
widthInput: width*0.65,
widthSubtitle: width*0.65,
hintInput: 'Escreva aqui',
enabled: editing,
onChanged: (v)=>setState((){}),
),
],
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: 'R\$',color: Colors.black87)),
InputWithSubtitle(
textInputType: TextInputType.number,
controller: RENDA_TOTAL_FAMILIAR,
subtitle: 'Renda Total Familiar',
errorInput: 'Campo Obrigatório',
labelInput: 'Renda Total Familiar',
widthInput: width*0.65,
widthSubtitle: width*0.65,
hintInput: 'Escreva aqui',
enabled: editing,
onChanged: (v)=>setState((){}),
),
],
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: '',color: Colors.black87)),
SwitchWithSubtitle(
width: width*0.65,
title: 'Possui Veículo Próprio',
value: POSSUI_VEICULO,
onChanged: !editing?null: (value)=>setState(()=>POSSUI_VEICULO = value!),
),
],
),
Container(
width: width*0.7,
child: Row(
children: [
Container(width: width*0.05,child: TextDefault(text: '',color: Colors.black87)),
InputWithSubtitle(
controller: MODELO_VEICULO,
subtitle: 'Modelo Veículo',
errorInput: 'Campo Obrigatório',
labelInput: 'Modelo Veículo',
widthInput: width*0.53,
widthSubtitle: width*0.53,
hintInput: 'Escreva aqui',
enabled: editing && POSSUI_VEICULO,
onChanged: (v)=>setState((){}),
),
Spacer(),
InputWithSubtitle(
controller: ANO_VEICULO,
subtitle: 'Ano Veículo',
errorInput: 'Campo Obrigatório',
labelInput: 'Ano Veículo',
widthInput: width*0.1,
widthSubtitle: width*0.1,
hintInput: 'Escreva aqui',
enabled: editing && POSSUI_VEICULO,
onChanged: (v)=>setState((){}),
),
],
),
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: '',color: Colors.black87)),
SwitchWithSubtitle(
width: width*0.65,
title: 'Possui Financiamento',
value: POSSUI_FINANCIAMENTO,
onChanged: !editing?null: (value)=>setState(()=>POSSUI_FINANCIAMENTO = value!),
),
],
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: 'R\$',color: Colors.black87)),
InputWithSubtitle(
controller: VALOR_PARCELA_FINANCIAMENTO,
subtitle: 'Valor Parcela Financiamento',
errorInput: 'Campo Obrigatório',
labelInput: 'Valor Parcela Financiamento',
widthInput: width*0.65,
widthSubtitle: width*0.65,
hintInput: 'Escreva aqui',
enabled: editing && POSSUI_FINANCIAMENTO,
onChanged: (v)=>setState((){}),
),
],
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: '',color: Colors.black87)),
SwitchWithSubtitle(
width: width*0.65,
title: 'Possui Veículo Empréstimo',
value: POSSUI_EMPRESTIMO,
onChanged: !editing?null: (value)=>setState(()=>POSSUI_EMPRESTIMO = value!),
),
],
),
Row(
children: [
Container(width: width*0.05,child: TextDefault(text: 'R\$',color: Colors.black87)),
InputWithSubtitle(
controller: VALOR_PARCELA_EMPRESTIMO,
subtitle: 'Valor Parcela Empréstimo',
errorInput: 'Campo Obrigatório',
labelInput: 'Valor Parcela Empréstimo',
widthInput: width*0.65,
widthSubtitle: width*0.65,
hintInput: 'Escreva aqui',
enabled: editing && POSSUI_EMPRESTIMO,
onChanged: (v)=>setState((){}),
),
],
),
],
),
),
]
),
],
),
),
CNS_VALIDO?Card(
margin: EdgeInsets.all(10),
child: Container(

View File

@@ -3,16 +3,20 @@ import 'package:intl/intl.dart';
import 'package:line_icons/line_icons.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/models/equipe_cidadao.dart';
import 'package:rkm/service/db/db_querys.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/text_default.dart';
import 'package:rkm/widgets/title_containers.dart';
import 'package:sqflite/sqflite.dart';
import '../../service/db/db_sqlite_load.dart';
import '../../service/db/db_sqlite_sync.dart';
import '../../service/shared_preferences/shared_preferences_service.dart';
import '../../widgets/alert_dialog_default.dart';
import '../../widgets/appbar_default.dart';
import '../../widgets/check_box_two_subtitle.dart';
import '../../widgets/dropdown_with_subtitle.dart';
import '../../widgets/dropdown_with_subtitle_cidadao.dart';
import '../../widgets/error_default.dart';
import '../../widgets/input_with_subtitle.dart';
import '../../widgets/onbackbutton.dart';
@@ -20,7 +24,8 @@ import '../../widgets/subtitle_appbar_citizen.dart';
import '../../widgets/switch_with_subtitle.dart';
class RegisterIndividualScreen extends StatefulWidget {
List listData;
RegisterIndividualScreen({required this.listData});
String username;
RegisterIndividualScreen({required this.listData, required this.username});
@override
State<RegisterIndividualScreen> createState() => _RegisterIndividualScreenState();
@@ -28,7 +33,7 @@ class RegisterIndividualScreen extends StatefulWidget {
class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
List<String> listINE = [];
List<EquipeCidadao> listINE = [];
List<String> listkin = [];
List<String> listScoolingRegisterInd = [];
List<String> listOcupacion = [];
@@ -96,6 +101,9 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
bool HIGIENE_BUCAL = false;
bool OUTROS_HIGIENE = false;
bool CNS_VALIDO = false;
bool FIBROMIALGIA = false;
bool TRANSTORNO_ESPECTRO_AUTISTA = false;
bool edit = false;
bool editing = false;
bool mandatory = false;
@@ -116,7 +124,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
int IDENTIDADE_GENERO_COD = 0;
int ID_EQUIPE = 0;
int ID_CIDADAO = 0;
String? INE;
EquipeCidadao? INE;
String? INE_DB;
String? ESCOLARIDADE;
String? SITUACAO_MERCADO;
@@ -133,7 +141,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
String? CBO_RESP_CADASTRO;
String? INE_RESP_CADASTRO;
String CNS_PROFISSIONAL='';
String idUsuario = '';
int idUsuario = 0;
String idUnidade = '';
String nomeUnidade = '';
String date_cad = '';
@@ -141,6 +149,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
int ID_AREA_CIDADAO = 0;
int ID_MICROAREA_CIDADAO = 0;
String TIPO_SALVAR = 'new';
int ID_PROFISSIONAL = 0;
var NOME_RESPONSAVEL_FAMILIAR = TextEditingController();
var NATURALIDADE = TextEditingController(text: 'BRASILEIRO');
@@ -155,20 +164,20 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
var OUTRAS_CONDICOES = TextEditingController();
var ACOMP_INTITUICAO_QUAL = TextEditingController();
var PARENTESCO_VISITA = TextEditingController();
var ID_RESP_CADASTRO = TextEditingController();
var USUARIO_RESP_CADASTRO = TextEditingController();
var CNES_RESP_CADASTRO = TextEditingController();
var DT_CADASTRO = TextEditingController();
final PrefService _prefService = PrefService();
getUser(){
_prefService.readCacheIdUsuario('idUsuario').then((value){
_prefService.readCacheIDUser().then((value){
if(value != null){
idUsuario = value;
idUsuario = int.parse(value);
}
});
_prefService.readCacheUnidade('idUnidade').then((value){
_prefService.readCacheUnidade().then((value){
if(value!=null){
idUnidade = value[0];
idUnidade = value[0].toString();
nomeUnidade = value[1];
}
loadLists();
@@ -217,27 +226,53 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
loadCadIndividual()async{
ID_CIDADAO = widget.listData[0]['ID_CIDADAO'];
// print(widget.listData[0]['ID_CAD_INDIVIDUAL']);
print('ID_CIDADAO');
print(ID_CIDADAO);
await DBQuerys().buscaCadInvidual(ID_CIDADAO).then((dataCitizen)async{
// print(CD_USUARIO_SUS);
if(dataCitizen.length != 0) {
if(dataCitizen.isNotEmpty) {
ID_PROFISSIONAL = dataCitizen[0]['ID_RESP_CADASTRO'];
TIPO_SALVAR = 'update';
showTab = true;
FORA_AREA = dataCitizen[0]['FORA_AREA'] == 1 ? true : false;
ID_EQUIPE = dataCitizen[0]['ID_EQUIPE']??0;
STATUS_CADASTRO = dataCitizen[0]['STATUS_CADASTRO'] == null? false : dataCitizen[0]['STATUS_CADASTRO'] == 1 ? true : false;
RESPONSAVEL_FAMILIAR = dataCitizen[0]['RESPONSAVEL_FAMILIAR'] == 1 ? true : false;
FIBROMIALGIA = dataCitizen[0]['FIBROMIALGIA']==1?true:false;
TRANSTORNO_ESPECTRO_AUTISTA = dataCitizen[0]['TRANSTORNO_ESPECTRO_AUTISTA']==1?true:false;
if(dataCitizen[0]['INE']!=null){
INE = 'INE: ${dataCitizen[0]['INE']} / Área : ${dataCitizen[0]['ID_AREA_CIDADAO']} - Microárea : ${dataCitizen[0]['ID_MICROAREA_CIDADAO']}';
INE_RESP_CADASTRO = 'INE: ${dataCitizen[0]['INE']} / Área: ${dataCitizen[0]['AREA']} - Microárea : ${dataCitizen[0]['MICROAREA']}';
listINE.add(INE!);
print('co');
String ine = 'INE: ${dataCitizen[0]['INE']} / Área : ${dataCitizen[0]['AREA']} ${dataCitizen[0]['MICROAREA']==null?'':'- Microárea : ${dataCitizen[0]['MICROAREA']}'}';
INE_RESP_CADASTRO = 'INE: ${dataCitizen[0]['INE']} / Área: ${dataCitizen[0]['AREA']} ${dataCitizen[0]['MICROAREA']==null?'':'- Microárea : ${dataCitizen[0]['MICROAREA']}'}';
INE = EquipeCidadao(
DESCRICAO: ine!,
ID_MICROAREA_CIDADAO: dataCitizen[0]['ID_MICROAREA_CIDADAO'],
ID_AREA_CIDADAO: dataCitizen[0]['ID_AREA_CIDADAO']
);
listINEPROF.add(INE_RESP_CADASTRO!);
}else{
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
for(int i=0; list.length > i;i++){
INE = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}';
INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}';
listINE.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}');
String ine = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} ${list[i]['MICROAREA']==null?'':'- Microárea : ${list[i]['MICROAREA']}'}';
INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} ${list[i]['MICROAREA']==null?'':'- Microárea : ${list[i]['MICROAREA']}'}';
listINE.add(
EquipeCidadao(
DESCRICAO: ine!,
ID_MICROAREA_CIDADAO: list[i]['ID_ATB_MICROAREA'],
ID_AREA_CIDADAO: list[i]['ID_ATB_AREA']
)
);
print('ID_MICROAREA_CIDADAO');
print(dataCitizen[0]['ID_MICROAREA_CIDADAO']);
print('ID_AREA_CIDADAO');
print(dataCitizen[0]['ID_AREA_CIDADAO']);
if(dataCitizen[0]['ID_MICROAREA_CIDADAO']==list[i]['ID_ATB_MICROAREA']
&&dataCitizen[0]['ID_AREA_CIDADAO']==list[i]['ID_ATB_AREA']){
INE = listINE[i];
}
listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}');
}
}
@@ -387,37 +422,41 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
SANITARIO = dataCitizen[0]['SANITARIO'] == 1 ? true : false;
HIGIENE_BUCAL = dataCitizen[0]['HIGIENE_BUCAL'] == 1 ? true : false;
OUTROS_HIGIENE = dataCitizen[0]['OUTROS_HIGIENE'] == 1 ? true : false;
CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(idUnidade);
CBO_RESP_CADASTRO = dataCitizen[0]['CBO_RESP_CADASTRO'].toString();
date_cad = dataCitizen[0]['DT_CADASTRO']??'';
// print('data $date_cad');
List splitted = date_cad.toString().split('-');
DT_CADASTRO.text = splitted.length<2?'':'${splitted[2]}/${splitted[1]}/${splitted[0]}';
CNES_RESP_CADASTRO.text = dataCitizen[0]['CNES_RESP_CADASTRO']??'';
setState(() {});
}
if(CNES_RESP_CADASTRO.text=='null' || CNES_RESP_CADASTRO.text.isEmpty){
CNES_RESP_CADASTRO.text = nomeUnidade;
}else{
showTab = true;
}
if(listINE.length == 0){
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
for(int i=0; list.length > i;i++){
ID_AREA_CIDADAO = list[i]['AREA'];
ID_MICROAREA_CIDADAO = list[i]['MICROAREA'];
ID_AREA_CIDADAO = list[i]['ID_ATB_AREA'];
ID_MICROAREA_CIDADAO = list[i]['ID_ATB_MICROAREA']==null?0:list[i]['ID_ATB_MICROAREA'];
INE_DB = list[i]['INE'];
INE = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}';
INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}';
listINE.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}');
listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}');
String ine = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} ${list[i]['MICROAREA']==null?'':'- Microárea : ${list[i]['MICROAREA']}'}';
INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} ${list[i]['MICROAREA']==null?'':'- Microárea : ${list[i]['MICROAREA']}'}';
listINE.add(
EquipeCidadao(
DESCRICAO: ine!,
ID_MICROAREA_CIDADAO: list[i]['ID_ATB_MICROAREA'],
ID_AREA_CIDADAO: list[i]['ID_ATB_AREA']
)
);
listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} ${list[i]['MICROAREA']==null?'':'- Microárea : ${list[i]['MICROAREA']}'}');
}
}
await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list){
ID_RESP_CADASTRO.text = list['NOME_PROFISSIONAL'];
USUARIO_RESP_CADASTRO.text = list['NOME_PROFISSIONAL'];
CNS_PROFISSIONAL = list['CNS_PROFISSIONAL'];
if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){
CNS_VALIDO = true;
}
});
CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(idUnidade);
// CNES_RESP_CADASTRO.text = await DBQuerys().buscaNomeUnidade(idUnidade);
await DBQuerys().buscaCBOProfissional(idUsuario).then((list){
if(list.length!=0){
for(int i = 0; list.length>i;i++){
@@ -426,6 +465,14 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
}
CBO_RESP_CADASTRO = list.length == 0?null:list[0]['CODIGO_CBO'].toString();
});
if(ID_PROFISSIONAL!=0){
await DBQuerys().buscaProfissionalCadInd(ID_PROFISSIONAL).then((value)async{
// print(value);
USUARIO_RESP_CADASTRO.text = value['NOME_PROFISSIONAL'];
//aguardando unidade
// CNES_RESP_CADASTRO.text = await DBQuerys().cnesUnidade(value['ID_UNIDADE']);
});
}
});
setState(() {});
}
@@ -454,12 +501,13 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
}
saveCitizenInd()async{
//cnes
Map<String, dynamic> row = {
'STATUS_CADASTRO' : STATUS_CADASTRO?1:2,
'ID_CIDADAO' : widget.listData[0]['ID_CIDADAO'],
'CD_USUARIO_SUS' : widget.listData[0]['CD_USUARIO_SUS'],
'ID_AREA_CIDADAO' : ID_AREA_CIDADAO,
'ID_MICROAREA_CIDADAO' : ID_MICROAREA_CIDADAO,
'ID_AREA_CIDADAO' : INE!.ID_AREA_CIDADAO,
'ID_MICROAREA_CIDADAO' : INE!.ID_MICROAREA_CIDADAO,
'FORA_AREA' : FORA_AREA?1:2,
'RESPONSAVEL_FAMILIAR' : RESPONSAVEL_FAMILIAR?1:2,
'ID_RESPONSAVEL_FAMILIAR' : '',
@@ -497,6 +545,8 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
'TUBERCULOSE' : TUBERCULOSE?1:2,
'CANCER' : CANCER?1:2,
'INTERNACAO' : INTERNACAO?1:2,
'FIBROMIALGIA' : FIBROMIALGIA?1:2,
'TRANSTORNO_ESPECTRO_AUTISTA': TRANSTORNO_ESPECTRO_AUTISTA?1:2,
'MOTIVO' : MOTIVO.text,
'DOENCA_CARDIACA' : DOENCA_CARDIACA_COD,
'PROBLEMA_RINS' : PROBLEMA_RINS_COD,
@@ -527,12 +577,12 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
'OUTROS_HIGIENE' : OUTROS_HIGIENE?1:2,
'FICHA_ALTERACAO' : 1,
'ID_RESP_CADASTRO' : idUsuario,
'CNES_RESP_CADASTRO' : CNES_RESP_CADASTRO.text,
'CNES_RESP_CADASTRO' : CNES_RESP_CADASTRO.text=='null'?'':CNES_RESP_CADASTRO.text,
'CBO_RESP_CADASTRO' : CBO_RESP_CADASTRO,
'INE_RESP_CADASTRO' : INE_DB,
'DT_CADASTRO' : date_cad,
'ID_EQUIPE' : ID_EQUIPE,
'ORIGEM' : 'A',
'ORIGEM' : TIPO_SALVAR!='new'?'A':'C',
'SINCRONIZADO' : 'N',
'DT_ENTRADA_BRASIL' : DT_ENTRADA_BRASIL.text,
'DT_NATURALIZACAO' : DT_NATURALIZACAO.text,
@@ -545,7 +595,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
'CRIANCAS_OUTRO' : CRIANCAS_OUTRO?1:2,
'IDENTIDADE_GENERO' : IDENTIDADE_GENERO_COD,
};
await DbSqliteSync().insertCadastrosIndividuais(row,TIPO_SALVAR,ID_CIDADAO,0).then((value){
await DbSqliteSync().insertCadastrosIndividuais(row,TIPO_SALVAR,ID_CIDADAO).then((value){
AlertDialogDefault().alert(
context,
'Aviso',
@@ -555,6 +605,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
'OK'
);
setState(() {
edit = false;
showTab = true;
});
// print(value);
@@ -565,9 +616,11 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
var pickDate = await showDatePicker(
context: context,
locale: Locale('pt','BR'),
initialDate: DateTime.now(),
firstDate: DateTime(1900),
lastDate: DateTime(2024));
lastDate: DateTime.now()
);
if (pickDate != null) {
if(type=='cadastro'){
date_cad = '${pickDate.year}-${pickDate.month<10?'0':''}${pickDate.month}-${pickDate.day<10?'0':''}${pickDate.day}';
@@ -601,16 +654,16 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()async=> await OnBackButton().onBackButton(context),
onWillPop: !edit?null:()async=> await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Individual'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Individual',widget.username),
body: Container(
height: double.infinity,
width: double.infinity,
decoration: ConstVariable().backgroundGradient,
child: ListView(
children: [
SubtitleAppbarCitizen(title: 2,edit: showTab,listData: widget.listData),
SubtitleAppbarCitizen(title: 2,edit: showTab,listData: widget.listData,username: widget.username),
showCheckError?Card(
margin: EdgeInsets.all(10),
child: Container(
@@ -691,7 +744,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
DropdownWithSubtitle(
DropdownWithSubtitleCidadao(
list:listINE,
widthSubtitle: width*0.7,
subtitle: 'INE / Área - Microárea',
@@ -699,7 +752,13 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
select: INE,
widthDropdown: width*0.69,
widthContainerDropdown: width*0.6,
onChanged:!editing?null: (value)=>setState(()=>INE = value),
onChanged:!editing?null: (value)=>setState((){
INE = value;
print('ID_AREA_CIDADAO');
print(INE!.ID_AREA_CIDADAO);
print('ID_MICROAREA_CIDADAO');
print(INE!.ID_MICROAREA_CIDADAO);
}),
onTapDelete: ()=>setState(()=>INE=null),
),
SwitchWithSubtitle(
@@ -1156,6 +1215,18 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
value: CANCER,
onChanged: !editing?null: (value)=>setState(()=>CANCER = value),
),
SwitchWithSubtitle(
width: width*0.7,
title: 'Fibromialgia',
value: FIBROMIALGIA ,
onChanged: !editing?null: (value)=>setState(()=>FIBROMIALGIA = value),
),
SwitchWithSubtitle(
width: width*0.7,
title: 'Transtorno Espectro Autista',
value: TRANSTORNO_ESPECTRO_AUTISTA,
onChanged: !editing?null: (value)=>setState(()=>TRANSTORNO_ESPECTRO_AUTISTA = value),
),
SwitchWithSubtitle(
width: width*0.7,
title: 'Internação nos Últimos 12 Meses',
@@ -1475,7 +1546,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
mainAxisSize: MainAxisSize.min,
children: [
InputWithSubtitle(
controller: ID_RESP_CADASTRO,
controller: USUARIO_RESP_CADASTRO,
subtitle: 'Usuário responsável Pelo Cadastro',
errorInput: 'Campo Obrigatório!',
labelInput: 'Usuário responsável Pelo Cadastro',

View File

@@ -7,7 +7,9 @@ import 'package:rkm/models/drop_down_data_model.dart';
import 'package:rkm/service/db/db_sqlite_Sigtap.dart';
import 'package:rkm/widgets/alert_dialog_default.dart';
import 'package:rkm/widgets/appbar_default.dart';
import 'package:sqflite/sqflite.dart';
import '../../config/const_variable.dart';
import '../../models/check_proced_sia_model.dart';
import '../../models/drop_down_data_string_model.dart';
import '../../service/api/api_data_import_sigtap.dart';
import '../../service/db/db_querys.dart';
@@ -22,16 +24,19 @@ import '../../widgets/input_with_subtitle.dart';
import '../../widgets/onbackbutton.dart';
import '../../widgets/text_default.dart';
import '../../widgets/title_containers.dart';
import '../home_screen.dart';
class ServiceHomeScreen extends StatefulWidget {
class AtendimentoDomiciliarTela extends StatefulWidget {
String name;
ServiceHomeScreen({required this.name});
String username;
var dados;
AtendimentoDomiciliarTela({required this.name,required this.username, required this.dados});
@override
State<ServiceHomeScreen> createState() => _ServiceHomeScreenState();
State<AtendimentoDomiciliarTela> createState() => _AtendimentoDomiciliarTelaState();
}
class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
class _AtendimentoDomiciliarTelaState extends State<AtendimentoDomiciliarTela> {
var NOME_PROFISSIONAL = TextEditingController();
var CNES_UNIDADE = TextEditingController();
@@ -40,7 +45,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
String date='';
String dateDB='';
String idUsuario='';
int idUsuario=0;
String idUnidade='';
String? nameCityApi;
String? mode;
@@ -48,18 +53,20 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
String CD_USUARIO_SUS = '';
String INE_PROFISSIONAL = '';
int ID_ATENDIMENTO_DOMICILIAR = 0;
int ID_CIDADAO=0;
int ID_PROFISSIONAL=0;
int LOCAL_ATENDIMENTO_COD=0;
int TIPO_ATENDIMENTO_COD=0;
int MODALIDADE_COD=0;
int TURNO_COD=0;
int CIAP_COD=0;
String CIAP_COD='';
int CONDUTA_COD=0;
int ID_EQUIPE=0;
String CID_COD='';
String? CBO_PROFISSIONAL;
String? CBO_PROFISSIONAL_DB;
String? CIAP;
String? CID;
String? CBO_RESP_CADASTRO;
@@ -71,19 +78,22 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
String? CONDUTA;
List<CheckModel> serviceHomeModel = [];
List<CheckModel> serviceProcModel = [];
List<CheckProcedSiaModel> serviceProcModel = [];
List <String>listCBO = [];
List <String>listServicePlace = [];
List <String>typeService = [];
List <String>typeModelService = [];
List <String>typeTurnService = [];
List <String>listINEPROF = [];
List<DropDownDataModel> listCIAP = [];
List<DropDownDataStringModel> listCIAP = [];
List<DropDownDataStringModel> listCID = [];
List<String> PROCEDIMENTOS_SIGTAP = [];
List<String> ATENDS_DOM_PROC = [];
List<String> listConduct = [];
List listProc = [];
List CBOS_PROFISSIONAL=[];
List condicoes = [];
List procedimentos = [];
bool CNS_VALIDO = false;
bool mandatory = false;
@@ -129,45 +139,45 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
getUser()async{
final PrefService _prefService = PrefService();
_prefService.readCacheIdUsuario('idUsuario').then((value){
if(value != null){
idUsuario = value;
_prefService.readCacheIDUser().then((value){
if(value != 0){
idUsuario = int.parse(value);
// print('idUsuario get');
// print(idUsuario);
loadData();
getPro();
// getProcedimentos();
}
});
_prefService.readCacheUnidade('idUnidade').then((value){
_prefService.readCacheUnidade().then((value){
if(value!=null){
idUnidade = value[0];
idUnidade = value[0].toString();
CNES_UNIDADE.text = value[1];
}
});
await DbSqliteLoad().intialDB().then((db)async{
List list = await db.query('ARGS');
urlAPI = list[0]['URLAPI'];
mode = list[0]['MODE'];
nameCityApi = list[0]['NAME_CITY_API'];
}).then((value)async{
await ApiDataImportSigtap().loadSIGTAP(urlAPI, mode, nameCityApi).then((value)async{
await DbSqliteSigtap().saveProceduresSigtapDB(value).then((db)async{
List list = await db.query('PROCEDIMENTOS_SIGTAP');
for(int i = 0; list.length>i;i++){
if(list[i]['COD_PROC_SIGTAP']!=null && list[i]['DESC_PROC_SIGTAP']!=null){
PROCEDIMENTOS_SIGTAP.add(list[i]['COD_PROC_SIGTAP']+' - ' + list[i]['DESC_PROC_SIGTAP']);
}
}
setState(() {});
});
});
});
await DBQuerys().buscaCIAP().then((list){
listCIAP.add(DropDownDataModel(cod: int.parse(list['CODIGO_CIAP']), title: list['DESC_CIAP']));
for(int i = 0 ; list.length > i ; i++){
listCIAP.add(DropDownDataStringModel(cod: list[i]['CODIGO_CIAP'], title: list[i]['DESC_CIAP']));
}
});
await DBQuerys().buscaCID().then((list){
listCID.add(DropDownDataStringModel(cod: list['CODIGO_CID'], title: list['DESCRICAO_CID']));
for(int i = 0 ; list.length > i ; i++){
listCID.add(DropDownDataStringModel(cod: list[i]['CODIGO_CID'], title: list[i]['DESCRICAO_CID']));
}
});
}
loadData()async{
// print('idUsuario');
// print(idUsuario);
await DBQuerys().buscaAtendDomProc().then((value){
for(int i = 0 ; value.length > i ; i++){
PROCEDIMENTOS_SIGTAP.add('${value[i]['COD_PROC_SIGTAP']} - ${value[i]['DESC_PROC_SIGTAP']}');
}
});
await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list){
ID_PROFISSIONAL = list['ID_PROFISSIONAL'];
NOME_PROFISSIONAL.text = list['NOME_PROFISSIONAL'];
@@ -175,30 +185,75 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){
CNS_VALIDO = true;
}
setState(() {});
});
await DBQuerys().buscaCBOProfissional(idUsuario).then((list){
if(list.length!=0){
for(int i = 0; list.length>i;i++){
listCBO.add(list[i]['CODIGO_CBO'].toString());
}
}
CBO_RESP_CADASTRO = list.length == 0?null:list[0]['CODIGO_CBO'].toString();
setState(() {});
});
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
for(int i=0; list.length > i;i++){
INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}';
listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - Microárea : ${list[i]['MICROAREA']}');
INE_RESP_CADASTRO = 'INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} ${list[i]['MICROAREA']==null?'':'- Microárea : ${list[i]['MICROAREA']}'}';
listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} ${list[i]['MICROAREA']==null?'':'- Microárea : ${list[i]['MICROAREA']}'}');
}
setState(() {});
}
getPro()async{
Database dbcbo = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM PROFISSIONAIS_CBOS WHERE ID_PROFISSIONAL = $idUsuario';
List listcbo = await dbcbo.rawQuery(query);
if(listcbo.length!=0){
for(int i = 0; listcbo.length>i;i++){
await DBQuerys().buscaCBOSProfissional(listcbo[i]['CODIGO_CBO']).then((cbo)async{
if(cbo.length!=0){
listCBO.add(cbo[0]['DESCRICAO_CBO']+' - '+listcbo[i]['CODIGO_CBO'].toString());
}
});
}
if(widget.dados!=null){
editarAtendimento();
}
}
}
getProcedimentos()async{
List CBOS = [];
await DBQuerys().buscaCBOProfissional(idUsuario).then((cbosProfissional){
if(cbosProfissional.length!=0){
for(int i = 0; cbosProfissional.length>i;i++){
CBOS.add(cbosProfissional[i]['CODIGO_CBO'].toString());
}
}
CBO_RESP_CADASTRO = cbosProfissional.length == 0?null:cbosProfissional[0]['CODIGO_CBO'].toString();
}).then((value)async{
print('CBOS.length');
print(CBOS.length);
print(CBOS);
for(int i = 0; CBOS.length>i;i++){
await DBQuerys().buscaPROCEDIMENTOS_SIGTAP_CBO(CBOS[i]).then((dadosCBOS)async{
print('dadosCBOS.length');
print(dadosCBOS.length);
print(dadosCBOS[0]);
for(int i = 0; dadosCBOS.length>i;i++){
await DBQuerys().buscaPROCEDIMENTOS_SIGTAP(dadosCBOS[i]['COD_PROC_SIGTAP']).then((dadosSIGTAP){
PROCEDIMENTOS_SIGTAP.add('${dadosSIGTAP[i]['COD_PROC_SIGTAP']} - ${dadosSIGTAP[i]['DESC_PROC_SIGTAP']}');
// print('dadosSIGTAP');
// print(dadosSIGTAP[0]);
});
}
});
}
print('PROCEDIMENTOS_SIGTAP');
print(PROCEDIMENTOS_SIGTAP.length);
print(PROCEDIMENTOS_SIGTAP);
});
}
checkSave()async{
// adicionar depois e usar um usuário real
// CBO_RESP_CADASTRO
//ok
if(date.isEmpty || dateDB.isEmpty || LOCAL_ATENDIMENTO_COD==0 || TIPO_ATENDIMENTO_COD ==0 || MODALIDADE_COD == 0 || TURNO_COD == 0
if(date.isEmpty || dateDB.isEmpty || LOCAL_ATENDIMENTO_COD==0 || TIPO_ATENDIMENTO_COD ==0 || MODALIDADE_COD == 0 || TURNO_COD == 0 || CBO_PROFISSIONAL == null || CONDUTA == null
){
print('erro');
setState(() {
@@ -206,7 +261,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
mandatory = true;
});
}else{
print('passou');
print('teste');
setState(() {
mandatory = false;
showCheckError = false;
@@ -215,12 +270,113 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
}
}
editarAtendimento()async{
Map map = widget.dados;
map.forEach((chave,valor){
print('$chave: $valor' );
});
ID_ATENDIMENTO_DOMICILIAR = map['ID_ATENDIMENTO_DOMICILIAR'];
dateDB = map['DATA'];
List splited = dateDB.split('-');
date = '${splited[2]}/${splited[1]}/${splited[0]}';
LOCAL_ATENDIMENTO_COD = map['LOCAL_ATENDIMENTO'];
for(int i = 0;ConstVariable().listServicePlace.length >i;i++){
if(ConstVariable().listServicePlace[i].cod == LOCAL_ATENDIMENTO_COD){
LOCAL_ATENDIMENTO = ConstVariable().listServicePlace[i].title;
}
}
TIPO_ATENDIMENTO_COD = map['TIPO_ATENDIMENTO'];
for(int i = 0;ConstVariable().typeService.length >i;i++){
if(ConstVariable().typeService[i].cod == TIPO_ATENDIMENTO_COD){
TIPO_ATENDIMENTO = ConstVariable().typeService[i].title;
}
}
CBO_PROFISSIONAL_DB = map['CBO_PROFISSIONAL'];
for(int i = 0;listCBO.length > i; i++){
String splited = listCBO[i].split(' - ').last;
if(splited == CBO_PROFISSIONAL_DB){
CBO_PROFISSIONAL = listCBO[i];
}
}
ID_EQUIPE = map['ID_EQUIPE'];
List listINE = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
int AREA_DESCRICAO = 0;
int MICROAREA_DESCRICAO = 0;
for(int i = 0;listINE.length >i;i++){
if(listINE[i]['ID_EQUIPE']==ID_EQUIPE){
INE_PROFISSIONAL = listINE[i]['INE']??'';
AREA_DESCRICAO = listINE[i]['AREA'];
MICROAREA_DESCRICAO = listINE[i]['MICROAREA'];
}
}
for(int i = 0;listINEPROF.length >i;i++){
RegExp ineRegExp = RegExp(r"INE:\s(\d+)");
RegExp areaRegExp = RegExp(r"Área:\s(\d+)");
RegExp microareaRegExp = RegExp(r"Microárea\s:\s(\d+)");
String ine = ineRegExp.firstMatch(listINEPROF[i])?.group(1) ?? '';
String area = areaRegExp.firstMatch(listINEPROF[i])?.group(1) ?? '';
String microarea = microareaRegExp.firstMatch(listINEPROF[i])?.group(1) ?? '';
if(INE_PROFISSIONAL==ine && AREA_DESCRICAO.toString() == area && MICROAREA_DESCRICAO.toString() == microarea){
INE_RESP_CADASTRO = listINEPROF[i];
}
}
MODALIDADE_COD = map['MODALIDADE'];
for(int i = 0;ConstVariable().typeModelService.length >i;i++){
if(ConstVariable().typeModelService[i].cod == MODALIDADE_COD){
MODALIDADE = ConstVariable().typeModelService[i].title;
}
}
TURNO_COD = map['TURNO'];
for(int i = 0;ConstVariable().typeTurnService.length >i;i++){
if(ConstVariable().typeTurnService[i].cod == TURNO_COD){
TURNO = ConstVariable().typeTurnService[i].title;
}
}
Database db = await DbSqliteLoad().intialDB();
condicoes = await db.query('ATENDS_DOM_COMPL WHERE ID_ATENDIMENTO_DOMICILIAR = $ID_ATENDIMENTO_DOMICILIAR');
procedimentos = await db.query('ATENDS_DOM_PROC WHERE ID_ATENDIMENTO_DOMICILIAR = $ID_ATENDIMENTO_DOMICILIAR');
// print(condicoes);
print(procedimentos);
for (int index = 0; index < ConstVariable().serviceHomeCheckConditionlist.length; index++) {
bool checkValue = condicoes.any((cond) =>cond['COND_AVAL_ATEND_DOM'] == index + 1);
serviceHomeModel.add(
CheckModel(
cod: 0,
subtitle: ConstVariable().serviceHomeCheckConditionlist[index],
check: checkValue,
),
);
}
for (int index = 0; index < ConstVariable().serviceHomeCheckProclist.length; index++) {
bool checkValue = procedimentos.any((cond) =>cond['PROC_ATEND_DOM'] == ConstVariable().serviceHomeCheckProclist[index].COD_SIA);
serviceProcModel.add(
CheckProcedSiaModel(
COD_SIA: ConstVariable().serviceHomeCheckProclist[index].COD_SIA,
DESCRICAO_PROCEDIMENTO: ConstVariable().serviceHomeCheckProclist[index].DESCRICAO_PROCEDIMENTO,
check: checkValue
)
);
}
CONDUTA_COD = map['CONDUTA'];
for(int i = 0;ConstVariable().listConduct.length >i;i++){
if(ConstVariable().listConduct[i].cod == CONDUTA_COD){
CONDUTA = ConstVariable().listConduct[i].title;
}
}
setState(() {});
}
saveServiceHome()async{
Map<String, dynamic> row = {
'ID_CIDADAO' : ID_CIDADAO,
'CD_USUARIO_SUS' : CD_USUARIO_SUS,
'ID_PROFISSIONAL' : int.parse(idUsuario),
'CBO_PROFISSIONAL' : CBO_PROFISSIONAL,
'ID_PROFISSIONAL' : idUsuario,
'CBO_PROFISSIONAL' : CBO_PROFISSIONAL_DB,
'INE_PROFISSIONAL' : INE_PROFISSIONAL,
'CNES_UNIDADE' : CNES_UNIDADE.text,
'ID_UNIDADE' : int.parse(idUnidade),
@@ -235,15 +391,26 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
'CONDUTA' : CONDUTA_COD,
'SINCRONIZADO' : 'N',
};
await DbSqliteSync().insertAtendimentoDomiciliar(row).then((value){
await DbSqliteSync().insertAtendimentoDomiciliar(row,widget.dados==null,ID_ATENDIMENTO_DOMICILIAR).then((value)async{
Database db = await DbSqliteLoad().intialDB();
await db.delete(
'ATENDS_DOM_COMPL', // Substitua pelo nome da sua tabela
where: 'ID_ATENDIMENTO_DOMICILIAR = ?',
whereArgs: [ID_ATENDIMENTO_DOMICILIAR],
);
for(int i = 0;serviceHomeModel.length>i;i++){
if(serviceHomeModel[i].check){
DbSqliteSync().insertCondicoesAvaliadas(value,i+1);
}
}
await db.delete(
'ATENDS_DOM_PROC', // Substitua pelo nome da sua tabela
where: 'ID_ATENDIMENTO_DOMICILIAR = ?',
whereArgs: [ID_ATENDIMENTO_DOMICILIAR],
);
for(int i = 0;serviceProcModel.length>i;i++){
if(serviceProcModel[i].check){
DbSqliteSync().insertProcedimentosDomiciliares(value,i+1);
DbSqliteSync().insertProcedimentosDomiciliares(value,serviceProcModel[i].COD_SIA);
}
}
AlertDialogDefault().alert(
@@ -252,6 +419,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
'Atendimento Domiciliar salvo com sucesso!',
'OK'
);
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (route) => false);
});
}
@@ -260,16 +428,18 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
ID_CIDADAO = list[0]['ID_CIDADAO'];
CD_USUARIO_SUS = list[0]['CD_USUARIO_SUS'];
});
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
INE_PROFISSIONAL = list[0]['INE'];
ID_EQUIPE = list[0]['ID_EQUIPE'];
if(widget.dados==null){
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
INE_PROFISSIONAL = list[0]['INE']??'';
ID_EQUIPE = list[0]['ID_EQUIPE']??0;
}
}
@override
void initState() {
super.initState();
dadosCidadao();
getUser();
dadosCidadao();
loadLists();
}
@@ -280,9 +450,9 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()async=> await OnBackButton().onBackButton(context),
onWillPop: ()async=> await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Domiciliar'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Domiciliar',widget.username),
body: Container(
height: double.infinity,
width: double.infinity,
@@ -338,6 +508,9 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
onChanged: (value){
setState(() {
CBO_PROFISSIONAL = value!;
List list = CBO_PROFISSIONAL.toString().split(' - ');
CBO_PROFISSIONAL_DB = list.last;
print(CBO_PROFISSIONAL_DB);
});
},
colorBorder: ColorPalette.white,
@@ -494,19 +667,22 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
children: [
SizedBox(height: 10,),
TitleContainers(title: 'Condição Avaliada',width: width * 0.73),
Container(
widget.dados!=null && serviceHomeModel.length !=ConstVariable().serviceHomeCheckConditionlist.length?Container():Container(
width: width*0.7,
height: heigth*1.3,
height: 1160,
child: ListView.builder(
physics: const NeverScrollableScrollPhysics(),
itemCount: ConstVariable().serviceHomeCheckConditionlist.length,
itemBuilder: (context,index){
serviceHomeModel.add(
CheckModel(
subtitle: ConstVariable().serviceHomeCheckConditionlist[index],
check: false
)
);
if(widget.dados==null){
serviceHomeModel.add(
CheckModel(
cod: 0,
subtitle: ConstVariable().serviceHomeCheckConditionlist[index],
check: false
)
);
}
return CheckBoxSubtitle(
subtitle: serviceHomeModel[index].subtitle,
checkbox:serviceHomeModel[index].check,
@@ -568,7 +744,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
padding: EdgeInsets.symmetric(vertical: 10),
width: width*0.7,
child: TextDefault(
text: CID!=null?'CID $CIAP':'CID',
text: CID!=null?'CID $CID':'CID',
color:Colors.black,
fontSize: 15,
)
@@ -598,22 +774,31 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
padding: const EdgeInsets.symmetric(horizontal: 10.0),
child: Container(
width: width*0.7,
height: heigth*1.2,
height: 970,
child: ListView.builder(
physics: const NeverScrollableScrollPhysics(),
itemCount: ConstVariable().serviceHomeCheckProclist.length,
itemBuilder: (context,index){
serviceProcModel.add(
CheckModel(
subtitle: ConstVariable().serviceHomeCheckProclist[index],
check: false
)
);
if(widget.dados==null){
serviceProcModel.add(
CheckProcedSiaModel(
COD_SIA: ConstVariable().serviceHomeCheckProclist[index].COD_SIA,
DESCRICAO_PROCEDIMENTO: ConstVariable().serviceHomeCheckProclist[index].DESCRICAO_PROCEDIMENTO,
)
);
}
return CheckBoxSubtitle(
subtitle: serviceProcModel[index].subtitle,
subtitle: serviceProcModel[index].DESCRICAO_PROCEDIMENTO,
checkbox:serviceProcModel[index].check,
width: width*0.6,
onChanged: (value)=>setState(()=>serviceProcModel[index].check=value),
onChanged: (value)=>setState((){
serviceProcModel[index].check=value;
print(serviceProcModel[index].COD_SIA);
print(serviceProcModel[index].DESCRICAO_PROCEDIMENTO);
print(serviceProcModel[index].check);
}),
);
}
),
@@ -675,37 +860,42 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 5.0),
child: Container(
width: width*0.7,
child: Row(
children: [
TextDefault(text: 'Conduta / Desfecho',fontSize: 15),
Spacer(),
DropdownWithSubtitle(
colorBorder: ColorPalette.white,
list: listConduct,
subtitle: 'SELECIONE',
select: CONDUTA,
widthDropdown: width*0.39,
widthContainerDropdown: width*0.3,
widthSubtitle: width*0.3,
hintDropdown: 'SELECIONE',
onChanged: (value){
CONDUTA = value;
for(int i = 0;ConstVariable().listConduct.length >i;i++){
if(ConstVariable().listConduct[i].title == CONDUTA){
CONDUTA_COD = ConstVariable().listConduct[i].cod;
}
}
setState(() {});
},
)
],
),
child: Column(
children: [
Container(
width: width*0.7,
child: Row(
children: [
TextDefault(text: 'Conduta / Desfecho',fontSize: 15),
Spacer(),
DropdownWithSubtitle(
colorBorder: ColorPalette.white,
list: listConduct,
subtitle: 'SELECIONE',
select: CONDUTA,
widthDropdown: width*0.39,
widthContainerDropdown: width*0.3,
widthSubtitle: width*0.3,
hintDropdown: 'SELECIONE',
onChanged: (value){
CONDUTA = value;
for(int i = 0;ConstVariable().listConduct.length >i;i++){
if(ConstVariable().listConduct[i].title == CONDUTA){
CONDUTA_COD = ConstVariable().listConduct[i].cod;
}
}
setState(() {});
},
)
],
),
),
CONDUTA_COD ==0 && mandatory?ErrorDefault():Container(),
],
)
)
),
]
)
),
]
)
),

View File

@@ -1,7 +1,11 @@
import 'package:flutter/material.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/widgets/appbar_default.dart';
import 'package:rkm/widgets/screen_dev.dart';
class ComplementarySheetScreen extends StatefulWidget {
const ComplementarySheetScreen({Key? key}) : super(key: key);
String username;
ComplementarySheetScreen({required this.username});
@override
State<ComplementarySheetScreen> createState() => _ComplementarySheetScreenState();
@@ -10,6 +14,10 @@ class ComplementarySheetScreen extends StatefulWidget {
class _ComplementarySheetScreenState extends State<ComplementarySheetScreen> {
@override
Widget build(BuildContext context) {
return Center(child: Text('Ficha Complementar'),);
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Ficha Complemetar',widget.username),
body: ScreenDev(),
);
}
}

View File

@@ -1,7 +1,11 @@
import 'package:flutter/material.dart';
import '../../widgets/appbar_default.dart';
import '../../widgets/screen_dev.dart';
class ConsumptionMarkersScreen extends StatefulWidget {
const ConsumptionMarkersScreen({Key? key}) : super(key: key);
String username;
ConsumptionMarkersScreen({required this.username});
@override
State<ConsumptionMarkersScreen> createState() => _ConsumptionMarkersScreenState();
@@ -10,6 +14,9 @@ class ConsumptionMarkersScreen extends StatefulWidget {
class _ConsumptionMarkersScreenState extends State<ConsumptionMarkersScreen> {
@override
Widget build(BuildContext context) {
return Center(child: Text('Marcadores de Consumo'),);
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Marcadores de Consumo',widget.username),
body: ScreenDev(),
);
}
}

View File

@@ -1,7 +1,11 @@
import 'package:flutter/material.dart';
import '../../widgets/appbar_default.dart';
import '../../widgets/screen_dev.dart';
class EligibilityAssessmentScreen extends StatefulWidget {
const EligibilityAssessmentScreen({Key? key}) : super(key: key);
String username;
EligibilityAssessmentScreen({required this.username});
@override
State<EligibilityAssessmentScreen> createState() => _EligibilityAssessmentScreenState();
@@ -10,6 +14,9 @@ class EligibilityAssessmentScreen extends StatefulWidget {
class _EligibilityAssessmentScreenState extends State<EligibilityAssessmentScreen> {
@override
Widget build(BuildContext context) {
return Center(child: Text('Avaliação de Elegibilidade'),);
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Avaliação de Elegibilidade',widget.username),
body: ScreenDev(),
);
}
}

View File

@@ -1,7 +1,13 @@
import 'package:flutter/material.dart';
import '../../widgets/appbar_default.dart';
import '../../widgets/screen_dev.dart';
class ProceduresScreen extends StatefulWidget {
const ProceduresScreen({Key? key}) : super(key: key);
String username;
ProceduresScreen({required this.username});
@override
State<ProceduresScreen> createState() => _ProceduresScreenState();
@@ -10,6 +16,9 @@ class ProceduresScreen extends StatefulWidget {
class _ProceduresScreenState extends State<ProceduresScreen> {
@override
Widget build(BuildContext context) {
return Center(child: Text('Procedimentos'),);
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Procedimentos',widget.username),
body: ScreenDev(),
);
}
}

View File

@@ -1,7 +1,10 @@
import 'package:flutter/material.dart';
import '../../widgets/appbar_default.dart';
import '../../widgets/screen_dev.dart';
class ServiceDentalScreen extends StatefulWidget {
const ServiceDentalScreen({Key? key}) : super(key: key);
String username;
ServiceDentalScreen({Key? key,required this.username}) : super(key: key);
@override
State<ServiceDentalScreen> createState() => _ServiceDentalScreenState();
@@ -10,6 +13,9 @@ class ServiceDentalScreen extends StatefulWidget {
class _ServiceDentalScreenState extends State<ServiceDentalScreen> {
@override
Widget build(BuildContext context) {
return Center(child: Text('Atendimento Odontológico'),);
return Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Odontológico',widget.username),
body: ScreenDev(),
);
}
}

View File

@@ -2,11 +2,13 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:line_icons/line_icons.dart';
import 'package:rkm/widgets/input_text.dart';
import 'package:sqflite/sqflite.dart';
import '../../models/check_model.dart';
import '../../config/color_palette.dart';
import '../../config/const_variable.dart';
import '../../models/drop_down_data_model.dart';
import '../../service/db/db_querys.dart';
import '../../service/db/db_sqlite_load.dart';
import '../../widgets/alert_dialog_default.dart';
import '../../widgets/appbar_default.dart';
import '../../widgets/button_default.dart';
@@ -19,7 +21,11 @@ import '../../widgets/text_default.dart';
import '../../widgets/title_containers.dart';
class ServiceIndividualScreen extends StatefulWidget {
const ServiceIndividualScreen({Key? key}) : super(key: key);
String username;
var dataPatient;
ServiceIndividualScreen({required this.username, required this.dataPatient});
@override
State<ServiceIndividualScreen> createState() => _ServiceIndividualScreenState();
@@ -66,8 +72,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
bool switchUnderObservation = false;
bool selectExamsRequested = false;
bool selectExamsAvalible = false;
var userResponsibleRegisterController = TextEditingController(text: 'ADMINISTRADOR');
var userUnitController = TextEditingController(text: 'USF PINHAL - EMILIA STEPHANI SIMIONATO');
bool mandatory = false;
var userResponsibleRegisterController = TextEditingController();
var userUnitController = TextEditingController();
var weigthController = TextEditingController();
var heightController = TextEditingController();
var cephalicPerimeterController = TextEditingController();
@@ -104,9 +111,20 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
});
}
loadUnidade()async{
Database db = await DbSqliteLoad().intialDB();
List list = await db.rawQuery("SELECT * FROM CONTROLE_INTERNO");
List listArg = await db.rawQuery("SELECT * FROM PROFISSIONAIS WHERE USERNAME = '${widget.username}'");
// print(listArg);
userUnitController.text = list[0]['NOME_UNIDADE'];
userResponsibleRegisterController.text =listArg[0]['NOME_PROFISSIONAL'];
setState(() {});
}
@override
void initState() {
super.initState();
loadUnidade();
loadLists();
}
@@ -117,9 +135,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: ()async=> await OnBackButton().onBackButton(context),
onWillPop: ()async=> await OnBackButton().onBackButton(context, widget.username),
child: Scaffold(
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Individual'),
appBar: AppBarDefault().appbar(context, 'RKM AB - Atendimento Individual',widget.username),
body: Container(
height: double.infinity,
width: double.infinity,
@@ -234,6 +252,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
controller: weigthController,
colorBorder: ColorPalette.white,
onChanged: (v)=>setState((){}),
mandatory: mandatory,
),
InputWithSubtitle(
subtitle: 'Altura (em metros - 0,00)',
@@ -245,6 +264,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
controller: heightController,
colorBorder: ColorPalette.white,
onChanged: (v)=>setState((){}),
mandatory: mandatory,
),
InputWithSubtitle(
subtitle: 'Perímetro cefálico (em centímetros - 000,00)',
@@ -256,6 +276,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
controller: cephalicPerimeterController,
colorBorder: ColorPalette.white,
onChanged: (v)=>setState((){}),
mandatory: mandatory,
),
SwitchWithSubtitle(
width: width*0.7,
@@ -271,7 +292,7 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
select: selectBreastfeeding,
widthDropdown: width*0.7,
widthContainerDropdown: width*0.6,
onChanged: (value)=>setState(()=>selectBreastfeeding = value!),
onChanged:widget.dataPatient['SEXO']=='M'?null: (value)=>setState(()=>selectBreastfeeding = value!),
colorBorder: ColorPalette.white,
),
],
@@ -464,8 +485,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
itemBuilder: (context,index){
serviceConditionModel.add(
CheckModel(
subtitle: ConstVariable().serviceIndividualCheckBoxList[index],
check: false
cod: 0,
subtitle: ConstVariable().serviceIndividualCheckBoxList[index],
check: false
)
);
return CheckBoxSubtitle(
@@ -494,8 +516,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
itemBuilder: (context,index){
communicableDiseasesModel.add(
CheckModel(
subtitle: ConstVariable().communicableDiseasesList[index],
check: false
cod: 0,
subtitle: ConstVariable().communicableDiseasesList[index],
check: false
)
);
return CheckBoxSubtitle(
@@ -518,8 +541,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
itemBuilder: (context,index){
trackingModel.add(
CheckModel(
subtitle: ConstVariable().trackingModelList[index],
check: false
cod: 0,
subtitle: ConstVariable().trackingModelList[index],
check: false
)
);
return CheckBoxSubtitle(
@@ -710,8 +734,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
itemBuilder: (context,index){
nasfPoloModelList.add(
CheckModel(
subtitle: ConstVariable().nasfPoloModelList[index],
check: false
cod: 0,
subtitle: ConstVariable().nasfPoloModelList[index],
check: false
)
);
return CheckBoxSubtitle(
@@ -734,8 +759,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
itemBuilder: (context,index){
conductList.add(
CheckModel(
subtitle: ConstVariable().conductModelList[index],
check: false
cod: 0,
subtitle: ConstVariable().conductModelList[index],
check: false
)
);
return CheckBoxSubtitle(
@@ -758,8 +784,9 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
itemBuilder: (context,index){
forwardingList.add(
CheckModel(
subtitle: ConstVariable().forwardingModelList[index],
check: false
cod: 0,
subtitle: ConstVariable().forwardingModelList[index],
check: false
)
);
return CheckBoxSubtitle(
@@ -865,7 +892,12 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
child: Column(
children: [
ButtonDefault(
onPressed: (){},
onPressed: (){
if(heightController.text.isEmpty || heightController.text.isEmpty || cephalicPerimeterController.text.isEmpty){
mandatory = true;
setState(() {});
}
},
title: 'Salvar',
borderColor: ColorPalette.appBar,
background: ColorPalette.appBar,
@@ -879,11 +911,24 @@ class _ServiceIndividualScreenState extends State<ServiceIndividualScreen> {
background: ColorPalette.blackButton,
textColor: ColorPalette.white,
width: double.infinity,
)
),
],
),
),
),
mandatory?Card(
margin: EdgeInsets.all(10),
child: Container(
padding: EdgeInsets.all(10),
child: Row(
children: [
Icon(Icons.warning,color: Colors.red,),
TextDefault(text: 'Existem campos obrigatórios não preenchidos.',color: ColorPalette.red,fontSize: 15,)
],
),
),
color: ColorPalette.white,
):Container(),
],
),
),

View File

@@ -39,6 +39,7 @@ class _SplashScreenState extends State<SplashScreen> {
if(dataControl.length != 0){
var query = "SELECT * FROM CONTROLE_INTERNO";
dataControl = await db.rawQuery(query);
print(dataControl);
String? url;
if(list[3]=='desenvolvimento'){
url = UrlApiConst.ApiUrlDesenvolvimento;

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/screens/login/sync_login_screen.dart';
import 'package:rkm/service/api/api_data_sync.dart';
import 'package:rkm/service/db/db_sqlite_sync.dart';
@@ -6,6 +7,8 @@ import 'package:rkm/config/color_palette.dart';
import 'package:rkm/widgets/alert_dialog_default.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/text_default.dart';
import '../service/api/api_data_import_sigtap.dart';
import '../service/db/db_sqlite_Sigtap.dart';
import '../service/db/db_sqlite_load.dart';
import '../service/shared_preferences/shared_preferences_service.dart';
@@ -23,9 +26,12 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
String idUsuario = '';
String idUnidade = '';
String nomeUnidade = '';
String area = '';
String microarea = '';
int AREA_ID = 0;
int AREA_DESCRICAO = 0;
int MICROAREA_ID = 0;
int MICROAREA_DESCRICAO = 0;
bool foraArea = false;
int foraAreaInt = 0;
String urlAPI='';
String mode = '';
String nameCityApi = '';
@@ -54,19 +60,26 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
codState = list[0]['COD_STATE'];
codCityIbge = list[0]['COD_IBGE'];
if(urlAPI!=''){
print('chegou');
dataUser();
}
});
}
dataUser()async{
_prefService.readCacheUnidade('idUnidade').then((listUnidade)async{
_prefService.readCacheSync('area', false).then((list){
foraArea = list[1];
List splited = list[0].split(': ');
area = splited[2].toString().substring(0,1);
microarea = splited[3];
idUnidade = listUnidade[0];
_prefService.readCacheUnidade().then((listUnidade)async{
print('listUnidade');
print(listUnidade);
_prefService.readCacheSync().then((list){
print('datauser');
print(list);
AREA_ID = list[0];
AREA_DESCRICAO = list[1];
MICROAREA_ID = list[2];
MICROAREA_DESCRICAO = list[3];
foraArea = list[9];
foraAreaInt = foraArea?1:0;
idUnidade = list[5].toString();
nomeUnidade = listUnidade[1];
initSync();
});
@@ -76,149 +89,110 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
initSync()async{
await DbSqliteSync().deleteSync().then((_)async{
await ApiDataSync().syncPerm(urlAPI,mode,nameCityApi,user).then((response)async{
if(response['status'] == 0 || response['sync_perm'] != "S"){
AlertDialogDefault().alert(context, 'Erro', 'Usuário sem permissão para Sincronização de Unidade!', 'Voltar');
}else{
setState(()=> messageSteps = "Etapa 1 de 10 - Importando informações do CONECTASUS");
await ApiDataSync().syncBairros(urlAPI,mode,nameCityApi,user).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Bairros - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 2 de 10 - Gravando os Bairros no Aplicativo");
}
List list = value;
for(int i=0;list.length > i;i++){
await DbSqliteSync().insertBairros(value,i).then((value)async{
int cont = list.length!=0?list.length:0;
countProg = i/cont;
setState(() {});
});
}
await ApiDataSync().syncTiposLogradouros(urlAPI,mode,nameCityApi,user).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Tipos de Logradouros - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 3 de 10 - Gravando os Tipos de Logradouros no Aplicativo");
}
List list = value;
for(int i=0;list.length > i;i++){
await DbSqliteSync().insertTiposLogradouros(value,i).then((value)async{
int cont = list.length!=0?list.length:0;
countProg = i/cont;
setState(() {});
});
}
await ApiDataSync().syncLogradouros(urlAPI,mode,nameCityApi,user).then((value)async{
countProg = 0.1;
setState(()=> messageSteps = "Etapa 1 de 10 - Importando informações do CONECTASUS");
await ApiDataSync().syncBairros(urlAPI,mode,nameCityApi,user).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Bairros - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 2 de 10 - Gravando os Bairros no Aplicativo");
await DbSqliteSync().insertBairros(value).then((value)async{
countProg = 0.2;
setState(() {});
await ApiDataSync().syncTiposLogradouros(urlAPI,mode,nameCityApi,user).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Logradouros - Por favor, tente novamente!");
setState(()=> messageSteps = "ERRO: Erro para carregar os Tipos de Logradouros - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 4 de 10 - Gravando os Logradouros no Aplicativo");
}
List list = value;
for(int i=0;list.length > i;i++){
await DbSqliteSync().insertLogradouros(value,i).then((value)async{
int cont = list.length!=0?list.length:0;
countProg = i/cont;
setState(()=> messageSteps = "Etapa 3 de 10 - Gravando os Tipos de Logradouros no Aplicativo");
await DbSqliteSync().insertTiposLogradouros(value).then((value)async{
countProg =0.3;
setState(() {});
});
}
await ApiDataSync().syncLoteamentos(urlAPI,mode,nameCityApi,user).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Loteamentos - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 5 de 10 - Gravando os Loteamentos no Aplicativo");
}
List list = value;
for(int i=0;list.length > i;i++){
await DbSqliteSync().insertLoteamentos(value,i).then((value)async{
int cont = list.length!=0?list.length:0;
countProg = i/cont;
setState(() {});
});
}
await ApiDataSync().syncProfissionais(urlAPI,mode,nameCityApi,user,idUnidade).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Profissionais - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 6 de 10 - Gravando os Profissionais no Aplicativo");
}
List list = value;
for(int i=0;list.length > i;i++){
await DbSqliteSync().insertProfissionais(value,i).then((value)async{
int cont = list.length!=0?list.length:0;
countProg = i/cont;
setState(() {});
});
}
await ApiDataSync().syncProfissionaisCBOs(urlAPI,mode,nameCityApi,user,idUnidade).then((value)async{
await ApiDataSync().syncLogradouros(urlAPI,mode,nameCityApi,user).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os CBOs dos Profissionais - Por favor, tente novamente!");
setState(()=> messageSteps = "ERRO: Erro para carregar os Logradouros - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 7 de 10 - Gravando os CBO´s dos Profissionais no Aplicativo");
}
List list = value;
for(int i=0;list.length > i;i++){
await DbSqliteSync().insertProfissionaisCBOs(value,i).then((value)async{
int cont = list.length!=0?list.length:0;
countProg = i/cont;
setState(()=> messageSteps = "Etapa 4 de 10 - Gravando os Logradouros no Aplicativo");
await DbSqliteSync().insertLogradouros(value).then((value)async{
countProg = 0.4;
setState(() {});
});
}
await ApiDataSync().syncCidadaos(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros dos Cidadãos - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 8 de 10 - Gravando os Cidadãos no Aplicativo");
}
List list = value;
for(int i=0;list.length > i;i++){
await DbSqliteSync().insertCidadaos(value,'sync','',i).then((value)async{
int cont = list.length!=0?list.length:0;
countProg = i/cont;
setState(() {});
});
}
await ApiDataSync().syncCadastrosDomiciliares(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros Domiciliares - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 9 de 10 - Gravando os Cadastros Domiciliares no Aplicativo");
}
List list = value;
for(int i=0;list.length > i;i++){
await DbSqliteSync().insertCadastrosDomiciliares(value,'sync',0,0,'',i).then((value)async{
int cont = list.length!=0?list.length:0;
countProg = i/cont;
setState(() {});
});
}
await ApiDataSync().syncCadastrosIndividuais(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea).then((value)async{
await ApiDataSync().syncLoteamentos(urlAPI,mode,nameCityApi,user).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros Individuais - Por favor, tente novamente!");
setState(()=> messageSteps = "ERRO: Erro para carregar os Loteamentos - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 10 de 10 - Gravando os Cadastros Individuais no Aplicativo");
}
List list = value;
for(int i=0;list.length > i;i++){
await DbSqliteSync().insertCadastrosIndividuais(value,'sync',0,i).then((value)async{
int cont = list.length!=0?list.length:0;
countProg = i/cont;
setState(()=> messageSteps = "Etapa 5 de 10 - Gravando os Loteamentos no Aplicativo");
await DbSqliteSync().insertLoteamentos(value).then((value)async{
countProg = 0.5;
setState(() {});
await ApiDataSync().syncProfissionais(urlAPI,mode,nameCityApi,user,idUnidade).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Profissionais - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 6 de 10 - Gravando os Profissionais no Aplicativo");
await DbSqliteSync().insertProfissionais(value).then((value)async{
countProg = 0.6;
setState(() {});
await ApiDataSync().syncProfissionaisCBOs(urlAPI,mode,nameCityApi,user,idUnidade).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os CBOs dos Profissionais - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 7 de 10 - Gravando os CBO´s dos Profissionais no Aplicativo");
}
await DbSqliteSync().insertProfissionaisCBOs(value).then((value)async{
countProg = 0.7;
setState(() {});
await ApiDataSync().syncCidadaos(urlAPI,mode,nameCityApi,user,idUnidade,AREA_ID,MICROAREA_ID,foraAreaInt).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros dos Cidadãos - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 8 de 10 - Gravando os Cidadãos no Aplicativo");
await DbSqliteSync().insertCidadaos(value,'sync','').then((value)async{
countProg = 0.8;
setState(() {});
await ApiDataSync().syncCadastrosDomiciliares(urlAPI,mode,nameCityApi,user,idUnidade,AREA_ID,MICROAREA_ID,foraAreaInt).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros Domiciliares - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 9 de 10 - Gravando os Cadastros Domiciliares no Aplicativo");
await DbSqliteSync().insertCadastrosDomiciliares(value,'sync',0,0,'').then((value)async{
countProg = 0.9;
setState(() {});
await ApiDataSync().syncCadastrosIndividuais(urlAPI,mode,nameCityApi,user,idUnidade,AREA_ID,MICROAREA_ID,foraAreaInt).then((value)async{
if(value.length == 0){
setState(()=> messageSteps = "ERRO: Erro para carregar os Cadastros Individuais - Por favor, tente novamente!");
}else{
setState(()=> messageSteps = "Etapa 10 de 10 - Gravando os Cadastros Individuais no Aplicativo");
await DbSqliteSync().insertCadastrosIndividuais(value,'sync',0).then((value)async{
await DbSqliteSync().saveSync(codCity,codState,urlAPI,mode,nameCityApi,nameCityFront,codCityIbge,user,idUnidade,nomeUnidade,AREA_ID,AREA_DESCRICAO,MICROAREA_ID,MICROAREA_DESCRICAO).then((value)async{
countProg = 1;
setState(() {});
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: user)));
});
});
}
});
});
}
});
});
}
});
});
});
});
}
});
});
}
await DbSqliteSync().saveSync(codCity,codState,urlAPI,mode,nameCityApi,nameCityFront,codCityIbge,user,idUnidade,nomeUnidade,area,microarea).then((value)async{
Navigator.pushNamed(context, '/home');
});
});
});
});
}
});
});
});
}
});
});
});
}
}
});
});
});
}
@@ -232,7 +206,7 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
return Scaffold(
bottomSheet: Container(
width: width,
height: height*0.05,
height: 70,
color: ColorPalette.appBar,
child: finish
?Row(

View File

@@ -5,6 +5,7 @@ class ApiDataImportSigtap{
Future loadSIGTAP(urlAPI,mode,nameCityApi)async{
//http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/ADMIN/sigtap
final url = '${urlAPI}${mode}/${nameCityApi}/ADMIN/sigtap';
print(url);
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);

View File

@@ -25,6 +25,16 @@ class ApiDataLoad{
final map = json.decode(response.body);
return map;
}
Future loadEtniasIndigenas(urlAPI,mode,nameCityApi,user)async{
//https://app0.rkmsistemas.com.br/api/atb/homologacao/cabreuva/admin/load/unidades
// http://192.168.0.42:8061/api/atb/desenvolvimento/portoferreira/admin/load/etnias_indigenas
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/etnias_indigenas';
// print(url);
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
// print(map);
return map;
}
Future loadUnidades(urlAPI,mode,nameCityApi,user)async{
//https://app0.rkmsistemas.com.br/api/atb/homologacao/cabreuva/admin/load/unidades
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/unidades
@@ -100,6 +110,7 @@ class ApiDataLoad{
Future loadEquipeComponentes(urlAPI,mode,nameCityApi,user)async{
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/load/equipeComponentes
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/load/equipeComponentes';
// print(url);
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
return map;

View File

@@ -9,13 +9,15 @@ class ApiDataPost{
// print('sinc');
// print(map);
final url = '${urlAPI}${mode}/${nameCityApi}/sincronizacao';
print(url);
var response = await http.post(
Uri.parse(url),
body: jsonEncode(map),
);
print(response.body);
print(response.statusCode);
if(response.statusCode == 200) {
if(response.body == '{"status":1}') {
await DBQuerys().updateCidadao();
await DBQuerys().updateCadastroIndividuais();
await DBQuerys().updateCadastroDomiciliar();

View File

@@ -42,6 +42,7 @@ class ApiDataSync{
Future syncProfissionais(urlAPI,mode,nameCityApi,user,idUnidade)async{
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/profissionais
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/profissionais';
print(url);
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
return map;
@@ -55,21 +56,25 @@ class ApiDataSync{
}
Future syncCidadaos(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea)async{
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cidadaos/1/1/true
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/cidadaos/$area/$microarea/$foraArea';
// http://192.168.0.42:8061/api/atb/desenvolvimento/portoferreira/admin/sync/47/cidadaos/1/1/true
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/cidadaos/$area/$microarea/${foraArea==1?1:0}';
print(url);
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
return map;
}
Future syncCadastrosDomiciliares(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea)async{
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cadastrosDomiciliares/1/1/true
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/cadastrosDomiciliares/$area/$microarea/$foraArea';
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/cadastrosDomiciliares/$area/$microarea/${foraArea==1?1:0}';
print(url);
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
return map;
}
Future syncCadastrosIndividuais(urlAPI,mode,nameCityApi,user,idUnidade,area,microarea,foraArea)async{
// http://192.168.0.42:8010/api/atb/desenvolvimento/corumbatai/admin/sync/3/cadastrosIndividuais/1/1/true
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/cadastrosIndividuais/$area/$microarea/$foraArea';
final url = '${urlAPI}${mode}/${nameCityApi}/${user}/sync/${idUnidade}/cadastrosIndividuais/$area/$microarea/${foraArea==1?1:0}';
print(url);
final response = await http.get(Uri.parse(url));
final map = json.decode(response.body);
return map;

View File

@@ -1,7 +1,8 @@
class UrlApiConst{
static const String ApiUrlOnline = 'https://saude.rkmsistemas.com.br/api/atb/';
static const String ApiUrlHomologacao = 'https://app0.rkmsistemas.com.br/api/atb/';
static const String ApiUrlDesenvolvimento = 'http://192.168.0.42:8010/api/atb/';
// static const String ApiUrlDesenvolvimento = 'http://192.168.0.42:8010/api/atb/';
static const String ApiUrlDesenvolvimento = 'http://192.168.0.42:8061/api/atb/';
static const String ModeDesenvolvimento = 'desenvolvimento';
static const String ModeHomologacao = 'homologacao';
static const String ModeOnline = 'online';

View File

@@ -1,3 +1,4 @@
import 'package:flutter/cupertino.dart';
import 'package:rkm/service/db/db_sqlite_load.dart';
import 'package:sqflite/sqflite.dart';
@@ -24,55 +25,99 @@ class DBQuerys{
var query = "SELECT * FROM CIAPS";
List list = await db.rawQuery(query);
// print(list);
return list[0];
return list;
}
Future buscaCID()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM CIDS";
List list = await db.rawQuery(query);
// print(list);
return list[0];
return list;
}
Future buscaAtendDomProc()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM ATENDS_DOM_SIGTAP";
var query = "SELECT * FROM PROCEDIMENTOS_SIGTAP";
List list = await db.rawQuery(query);
// print(list);
return list[0];
return list;
}
buscaDadosProfissional(String idUnidade, String idUsuario)async{
buscaDadosProfissional(String idUnidade, int idUsuario)async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM EQUIPES JOIN PROFISSIONAIS_EQUIPE ON PROFISSIONAIS_EQUIPE.ID_EQUIPE = EQUIPES.ID_EQUIPE WHERE ID_UNIDADE = $idUnidade AND ID_PROFISSIONAL = $idUsuario";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future buscaProfissionalCadInd(String ID_PROFISSIONAL)async{
Future buscaProfissionalCadInd(int ID_PROFISSIONAL)async{
Database db = await DbSqliteLoad().intialDB();
// print('ID_PROFISSIONAL');
// print(ID_PROFISSIONAL);
var query = "SELECT * FROM PROFISSIONAIS WHERE ID_PROFISSIONAL = $ID_PROFISSIONAL";
// var query = "SELECT * FROM PROFISSIONAIS";
List list = await db.rawQuery(query);
// print(list);
return list[0];
if(list.isEmpty){
return '';
}else{
// print(list);
return list[0];
}
}
buscaNomeUnidade(String ID_UNIDADE)async{
buscaNomeUnidade(int ID_UNIDADE)async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM UNIDADES WHERE ID_UNIDADE = $ID_UNIDADE";
List list = await db.rawQuery(query);
if(list.isEmpty){
return '';
}else{
// print(list);
return list[0]['NOME_UNIDADE'];
}
}
cnesUnidade(int ID_UNIDADE)async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM UNIDADES WHERE ID_UNIDADE = $ID_UNIDADE";
List list = await db.rawQuery(query);
if(list.isEmpty){
return '';
}else{
// print(list);
return list[0]['CNES_UNIDADE'];
}
}
buscarCodProced(String PROCEDIMENTO)async{
print('PROCEDIMENTO');
print(PROCEDIMENTO);
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM PROCEDIMENTOS_SIGTAP WHERE DESC_PROC_SIGTAP = '$PROCEDIMENTO'";
List list = await db.rawQuery(query);
// print(list);
return list[0]['NOME_UNIDADE'];
if(list.isEmpty){
return '';
}else{
return list[0]['COD_PROC_SIGTAP'].toString();
}
}
buscaBairro(nomeBairro)async{
Database db = await DbSqliteLoad().intialDB();
List list = await db.rawQuery("SELECT * FROM BAIRROS WHERE NO_BAIRRO = '$nomeBairro'");
// print(await db.rawQuery('SELECT NO_BAIRRO FROM BAIRROS'));
// print(list[0]['ID_BAIRRO']);
return list[0]['ID_BAIRRO'].toString();
if(list.isEmpty){
return '';
}else{
// print(list);
return list[0]['ID_BAIRRO'].toString();
}
}
buscaTipoLogradouro(tipo)async{
Database db = await DbSqliteLoad().intialDB();
List list = await db.rawQuery("SELECT * FROM LOGRADOUROS_TIPOS WHERE NO_LOGR_TIPO = '$tipo'");
// print(list[0]['ID_LOGR_TIPO']);
return list[0]['ID_LOGR_TIPO'];
if(list.isEmpty){
return '';
}else{
// print(list);
return list[0]['ID_LOGR_TIPO'];
}
}
buscaprocedimento()async{
Database db = await DbSqliteLoad().intialDB();
@@ -81,6 +126,22 @@ class DBQuerys{
// print(list);
return list;
}
Future buscaPROCEDIMENTOS_SIGTAP_CBO(String CBO)async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM PROCEDIMENTOS_SIGTAP_CBO WHERE CODIGO_CBO = $CBO";
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future buscaPROCEDIMENTOS_SIGTAP(String SIGTAP)async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM PROCEDIMENTOS_SIGTAP WHERE COD_PROC_SIGTAP = '$SIGTAP'";
List list = await db.rawQuery(query);
// print(list);
return list;
}
buscaCBOS()async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM CBOS ORDER BY DESCRICAO_CBO";
@@ -122,12 +183,19 @@ class DBQuerys{
// print(list);
return list;
}
buscaEtniaIndigina(String COD_ETNIA)async{
Database db = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM ETNIAS_INDIGENAS WHERE ID_ETNIA_INDIGENA = "$COD_ETNIA"';
List list = await db.rawQuery(query);
// print(list);
return list;
}
buscaLoteamentoPorDesc(String DESC_LOGR_LOTEAMENTO)async{
Database db = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM LOGRADOUROS_LOTEAMENTOS WHERE DESC_LOGR_LOTEAMENTO = "$DESC_LOGR_LOTEAMENTO"';
List list = await db.rawQuery(query);
// print(list);
int result = list[0]['ID_LOGR_LOTEAMENTO'];
int result = list.length==0?0:list[0]['ID_LOGR_LOTEAMENTO'];
return result;
}
buscaLoteamentoPorID(int ID_LOGR_LOTEAMENTO)async{
@@ -135,7 +203,7 @@ class DBQuerys{
var query = 'SELECT * FROM LOGRADOUROS_LOTEAMENTOS WHERE ID_LOGR_LOTEAMENTO = $ID_LOGR_LOTEAMENTO';
List list = await db.rawQuery(query);
// print(list);
String result = list[0]['DESC_LOGR_LOTEAMENTO'];
String result = list.length==0?'':list[0]['DESC_LOGR_LOTEAMENTO'];
return result;
}
buscaTodosMunicipios()async{
@@ -164,12 +232,21 @@ class DBQuerys{
Database db = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM CIDADAOS WHERE NOME_CIDADAO = "$NOME_CIDADAO"';
List list = await db.rawQuery(query);
// print(list);
// print(list[0]['ID_USUARIO_CADASTRO']);
return list;
}
Future buscaCBOProfissional(ID_PROFISSIONAL)async{
Database db = await DbSqliteLoad().intialDB();
var query = 'SELECT * FROM PROFISSIONAIS_CBOS WHERE CODIGO_CBO = "$ID_PROFISSIONAL"';
var query = 'SELECT * FROM PROFISSIONAIS_CBOS WHERE ID_PROFISSIONAL = $ID_PROFISSIONAL';
// var query = 'SELECT * FROM PROFISSIONAIS_CBOS';
List list = await db.rawQuery(query);
// print(list);
return list;
}
Future buscaCBOSProfissional(CBOS)async{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM CBOS WHERE CODIGO_CBO = $CBOS";
// var query = 'SELECT * FROM CBOS';
List list = await db.rawQuery(query);
// print(list);
return list;
@@ -186,7 +263,6 @@ class DBQuerys{
Database db = await DbSqliteLoad().intialDB();
var query = "SELECT * FROM CIDADAOS WHERE ORIGEM = 'A' AND SINCRONIZADO = 'N'";
List<Map<String, dynamic>> maps = await db.rawQuery(query);
// print(list);
return List.generate(maps.length, (i) {
return maps[i];
});

View File

@@ -16,101 +16,76 @@ class DbSqliteSigtap{
db.execute(querys[i]);
}
}
Future saveProceduresSigtapDB(var value)async{
Future saveProceduresSigtapDB(var rows)async{
Database db = await DbSqliteLoad().intialDB();
// {"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'));
Batch batch = db.batch();
rows.forEach((row) {
batch.insert('PROCEDIMENTOS_SIGTAP', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> PROCEDIMENTOS_SIGTAP = await db.query('PROCEDIMENTOS_SIGTAP');
print('Total de PROCEDIMENTOS_SIGTAP : ${PROCEDIMENTOS_SIGTAP.length}');
return db;
}
Future saveProceduresRegisterSigtapDB(var value)async{
Future saveProceduresRegisterSigtapDB(var rows)async{
Database db = await DbSqliteLoad().intialDB();
// {"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'],
'CODIGO_REGISTRO' : value[i]['codRegistro'],
};
int id = await db.insert('PROCEDIMENTOS_SIGTAP_REGISTRO', row);
// print('id increment $id');
}
// print(await db.query('PROCEDIMENTOS_SIGTAP_REGISTRO'));
Batch batch = db.batch();
rows.forEach((row) {
batch.insert('PROCEDIMENTOS_SIGTAP_REGISTRO', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> PROCEDIMENTOS_SIGTAP_REGISTRO = await db.query('PROCEDIMENTOS_SIGTAP_REGISTRO');
print('Total de PROCEDIMENTOS_SIGTAP_REGISTRO : ${PROCEDIMENTOS_SIGTAP_REGISTRO.length}');
return db;
}
Future saveSigtapCID(var value)async{
Future saveSigtapCID(var rows)async{
Database db = await DbSqliteLoad().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 CIDS');
}
// print(await db.query('CIDS'));
Batch batch = db.batch();
rows.forEach((row) {
batch.insert('CIDS', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> CIDS = await db.query('CIDS');
print('Total de CIDS : ${CIDS.length}');
return db;
}
Future saveProceduresSigtapCID(var value)async{
Future saveProceduresSigtapCID(var rows)async{
Database db = await DbSqliteLoad().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_CID');
}
// print(await db.query('PROCEDIMENTOS_SIGTAP_CID'));
Batch batch = db.batch();
rows.forEach((row) {
batch.insert('PROCEDIMENTOS_SIGTAP_CID', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> PROCEDIMENTOS_SIGTAP_CID = await db.query('PROCEDIMENTOS_SIGTAP_CID');
print('Total de PROCEDIMENTOS_SIGTAP_CID : ${PROCEDIMENTOS_SIGTAP_CID.length}');
return db;
}
Future saveCBOSigtap(var value)async{
Future saveCBOSigtap(var rows)async{
Database db = await DbSqliteLoad().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 CBOS');
}
// print(await db.query('CBOS'));
Batch batch = db.batch();
rows.forEach((row) {
batch.insert('CBOS', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> CBOS = await db.query('CBOS');
print('Total de CBOS : ${CBOS.length}');
return db;
}
Future saveProceduresCBOSigtap(var value)async{
Future saveProceduresCBOSigtap(var rows)async{
Database db = await DbSqliteLoad().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_CBO');
}
// print(await db.query('PROCEDIMENTOS_SIGTAP_CBO'));
Batch batch = db.batch();
rows.forEach((row) {
batch.insert('PROCEDIMENTOS_SIGTAP_CBO', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> PROCEDIMENTOS_SIGTAP_CBO = await db.query('PROCEDIMENTOS_SIGTAP_CBO');
print('Total de PROCEDIMENTOS_SIGTAP_CBO : ${PROCEDIMENTOS_SIGTAP_CBO.length}');
return db;
}
Future saveSyncSigtap(competencia)async{

View File

@@ -1,5 +1,3 @@
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/controllers/main_controllers.dart';
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
@@ -30,13 +28,13 @@ class DbSqliteLoad{
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 INTEGER, 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 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 INTEGER, 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, FIBROMIALGIA INTEGER, TRANSTORNO_ESPECTRO_AUTISTA 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 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_ETNIA_INDIGENA TEXT, 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, RENDA_TOTAL_FAMILIAR REAL , POSSUI_VEICULO TEXT , MODELO_VEICULO TEXT , ANO_VEICULO INTEGER , POSSUI_FINANCIAMENTO TEXT , VALOR_PARCELA_FINANCIAMENTO REAL , POSSUI_EMPRESTIMO TEXT , VALOR_PARCELA_EMPRESTIMO REAL);');
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 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_ID INTEGER, AREA_DESCRICAO INTEGER, MICROAREA_ID INTEGER, MICROAREA_DESCRICAO 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);');
@@ -55,9 +53,10 @@ class DbSqliteLoad{
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 (ID_PROFISSIONAL INTEGER PRIMARY KEY AUTOINCREMENT, NOME_PROFISSIONAL TEXT, CNS_PROFISSIONAL TEXT, USERNAME TEXT, SENHA TEXT, BLOQUEIO_ACESSO INTEGER, ID_UNIDADE 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 ETNIAS_INDIGENAS (ID_ETNIA_INDIGENA TEXT, DESC_ETNIA_INDIGENA TEXT);');
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);');
@@ -103,6 +102,7 @@ class DbSqliteLoad{
'DELETE FROM PROFISSIONAIS;',
'DELETE FROM PROFISSIONAIS_CBOS;',
'DELETE FROM PROFISSIONAIS_EQUIPE;',
'DELETE FROM ETNIAS_INDIGENAS;',
'DELETE FROM UNIDADES;',
'DELETE FROM VISITAS_DOMICILIARES;',
'DELETE FROM VISITAS_DOMICILIARES_COMPL;',
@@ -143,6 +143,20 @@ class DbSqliteLoad{
return db;
}
Future saveEtniasIndigenasDB(List rows)async{
Database db = await intialDB();
Batch batch = db.batch();
rows.forEach((row) {
batch.insert('ETNIAS_INDIGENAS', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> ETNIAS_INDIGENAS = await db.query('ETNIAS_INDIGENAS');
print('Total de Etnias Indigenas no banco de dados: ${ETNIAS_INDIGENAS.length}');
return db;
}
Future saveUnidadesDB(List rows)async{
Database db = await intialDB();
Batch batch = db.batch();

View File

@@ -1,3 +1,4 @@
import 'package:rkm/service/db/db_querys.dart';
import 'package:rkm/service/db/db_sqlite_load.dart';
import 'package:sqflite/sqflite.dart';
@@ -22,115 +23,166 @@ class DbSqliteSync{
db.execute(querys[i]);
}
}
Future insertBairros(var value,int i)async{
Database db = await DbSqliteLoad().intialDB();
//"idBairro":2,"nomeBairro":"RURAL"
// BAIRROS (ID_BAIRRO INTEGER PRIMARY KEY AUTOINCREMENT, NO_BAIRRO TEXT);');
Map<String, dynamic> row = {
'ID_BAIRRO' : value[i]['idBairro'],
'NO_BAIRRO' : value[i]['nomeBairro'],
};
int id = await db.insert('BAIRROS', row);
// print('id increment $id');
// print(await db.query('BAIRROS'));
return db;
}
Future insertTiposLogradouros(var value,int i)async{
Database db = await DbSqliteLoad().intialDB();
// LOGRADOUROS_TIPOS (ID_LOGR_TIPO INTEGER PRIMARY KEY AUTOINCREMENT, NO_LOGR_TIPO TEXT);
// {"idTipoLogradouro":0,"nomeTipoLogradouro":"NAO DEFINIDO"}
Map<String, dynamic> row = {
'ID_LOGR_TIPO' : value[i]['idTipoLogradouro'],
'NO_LOGR_TIPO' : value[i]['nomeTipoLogradouro'],
};
int id = await db.insert('LOGRADOUROS_TIPOS', row);
// print('id increment $id');
// print(await db.query('LOGRADOUROS_TIPOS'));
return db;
}
Future insertLogradouros(var value,int i)async{
Database db = await DbSqliteLoad().intialDB();
// LOGRADOUROS_ENDERECOS (ID_LOGR_ENDERECO INTEGER, ID_LOGR_TIPO INTEGER, DESC_LOGR_ENDERECO TEXT, ID_BAIRRO INTEGER);
// "idLogradouro":7,"descLogradouro":"1A","idTipoLogradouro":6,"idBairro":65
Map<String, dynamic> row = {
'ID_LOGR_ENDERECO' : value[i]['idLogradouro'],
'ID_LOGR_TIPO' : value[i]['idTipoLogradouro'],
'DESC_LOGR_ENDERECO' : value[i]['descLogradouro'],
'ID_BAIRRO' : value[i]['idBairro'],
};
int id = await db.insert('LOGRADOUROS_ENDERECOS', row);
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
// print(await db.query('LOGRADOUROS_ENDERECOS'));
return db;
}
Future insertLoteamentos(var value,int i)async{
Database db = await DbSqliteLoad().intialDB();
// LOGRADOUROS_LOTEAMENTOS (ID_LOGR_LOTEAMENTO INTEGER PRIMARY KEY AUTOINCREMENT, DESC_LOGR_LOTEAMENTO TEXT);
// "idLoteamento":1,"descLoteamento":"ASSENTAMENTO MARINEL"
Map<String, dynamic> row = {
'ID_LOGR_LOTEAMENTO' : value[i]['idLoteamento'],
'DESC_LOGR_LOTEAMENTO' : value[i]['descLoteamento'],
};
int id = await db.insert('LOGRADOUROS_LOTEAMENTOS', row);
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
// print(await db.query('LOGRADOUROS_LOTEAMENTOS'));
return db;
}
Future insertProfissionais(var value,int i)async{
Database db = await DbSqliteLoad().intialDB();
// PROFISSIONAIS (ID_PROFISSIONAL INTEGER PRIMARY KEY AUTOINCREMENT, NOME_PROFISSIONAL TEXT, CNS_PROFISSIONAL TEXT, USERNAME TEXT, SENHA TEXT, BLOQUEIO_ACESSO INTEGER);');
// "idProfissional":1,"nomeProfissional":"ADMINISTRADOR","CNSProfissional":"999999999999999","username":"ADMIN","senha":"1$c124af0fb0b0941b907a9ddf3d5fb3c921d64e7d","bloqueioAcesso":0
Map<String, dynamic> row = {
'ID_PROFISSIONAL' : value[i]['idProfissional'],
'NOME_PROFISSIONAL': value[i]['nomeProfissional'],
'CNS_PROFISSIONAL' : value[i]['CNSProfissional'],
'USERNAME' : value[i]['username'],
'SENHA' : value[i]['senha'],
'BLOQUEIO_ACESSO' : value[i]['bloqueioAcesso'],
};
int id = await db.insert('PROFISSIONAIS', row);
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
// print(await db.query('PROFISSIONAIS'));
return db;
}
Future insertProfissionaisCBOs(var value,int i)async{
Database db = await DbSqliteLoad().intialDB();
// PROFISSIONAIS_CBOS (ID_PROFISSIONAL INTEGER, CODIGO_CBO TEXT);');
// "idProfissional":1,"codCBO":"225125"
Map<String, dynamic> row = {
'ID_PROFISSIONAL' : value[i]['idProfissional'],
'CODIGO_CBO' : value[i]['codCBO'],
};
int id = await db.insert('PROFISSIONAIS_CBOS', row);
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
// print(await db.query('PROFISSIONAIS_CBOS'));
return db;
}
Future insertCidadaos(var value,String type,String CD_USUARIO_SUS,int i)async{
Future insertBairros(var value)async{
List list = value;
List<Map<String, dynamic>> rows = [];
Database db = await DbSqliteLoad().intialDB();
// CIDADAOS (ID_CIDADAO,CD_USUARIO_SUS,NOME_CIDADAO,NOME_SOCIAL,SEXO,DT_NASCIMENTO,ID_ESTADO_CIVIL,NOME_CONJUGE,NACIONALIDADE,ID_MUNICIPIO_NASC,NO_MUNICIPIO_NASC,ESTADO_UF_NASC
// ID_ETNIA,ID_ESCOLARIDADE,ID_DEFICIENCIA,NOME_MAE,DESCONHECE_MAE,NOME_PAI,DESCONHECE_PAI,ID_UNIDADE,NUM_PRONTUARIO,NUM_PRONTUARIO_PROV,CLASSIFICACAO,CLASSIFICACAO_SUB,
// NUM_FAMILIA,ID_PAIS_RESID,ID_MUNICIPIO_RESID,NO_MUNICIPIO_RESID,ESTADO_UF_RESID,CODIGO_IBGE_RESID,NO_BAIRRO_LOGR,ID_LOGR_TIPO,NOME_LOGR,CEP_LOGR,NUMERO_LOGR,LOTEAMENTO_LOGR
// COMPL_LOGR,PONTO_REFERENCIA,ZONA_LOGR,DDD_TELEFONE,NUM_TELEFONE,DDD_CELULAR,NUM_CELULAR,DDD_RECADO,NUM_RECADO,EMAIL,OBSERVACOES,CPF,CNS,TITULO_ELEITOR,RG_NUMERO,
// RG_COMPLEMENTO,RG_UF,RG_ORGAO,RG_DATA_EMISSAO,TIPO_CERTIDAO,NUM_CERTIDAO,CARTORIO_CERTIDAO,LIVRO_CERTIDAO,FOLHA_CERTIDAO,TERMO_CERTIDAO,DT_EMISSAO_CERTIDAO,NUM_CTPS,
// NUM_SERIE_CTPS,ESTADO_UF_CTPS,NUM_PIS_PASEP,FL_RETIROU_CARTAO,NUM_NIS,NUM_PROT_CROSS,RENDA_MENSAL,PROFISSAO,DT_OBITO,DECLARACAO_OBITO,BLOQUEIO,ORIGEM,DT_HORA_CADASTRO,
// ID_USUARIO_CADASTRO,ID_DOMICILIO,ATENDIMENTOS,SINCRONIZADO);');
'"idCidadao":3,"cdUsuarioSus":"571A22D79C24526537C7E4CE8C0D4046","noUsuario":"REBECA MARIA DE MELO RIBEIRO DOS SANTOS","nomeSocial":"","inSexo":"F",'
'"dtNascimento":"2007-01-20","inSituacaoConjugal":null,"noConjugue":"","nacionalidade":1,"cdMunicipioNasc":1523,"noMunicipioNasc":"CORUMBATAI","cdEstado":"SP","cdEtnia":1,'
'"cdUsuarioEscolaridade":4,"nrDeficiencia":null,"noMae":"JOELMA MARIA DE MELO","desconheceMae":0,"noPai":"AILTON JOSE RIBEIRO DOS SANTOS","desconhecePai":0,"nrUnidade":3,'
'"nrProntuario":"000004","nrProntuarioProvisorio":null,"classificacao":1,"nrFamilia":"","idPaisResid":33,"cdMunicipioResid":3427,"noMunicipioResid":"CORUMBATAI",'
'"cdEstadoResid":"SP","muniCdCodIbgeResid":"351270","noBairro":"RURAL","idTipoLogradouro":6,"noLogradouro":"NAO INFORMADO","cdCep":"13540000","nrLogradouro":"0",'
'"loteamento":"","noComplLogradouro":"WASHIGNTON LUIZ","pontoReferencia":"","zona":2,"nrDddTelefone":"","nrTelefone":"","nrDddCelular":"11","nrCelular":"976399671",'
'"nrDddRecado":"","nrRecado":"","email":"","observacao":"","nrCpf":"57459957852","nrCns":"702309150758010","tituloEleitor":null,"nrIdentidade":"","noComplIdentidade":"",'
'"cdSiglaUfIdentidade":"--","cdOrgaoEmissorIdentidade":null,"dtEmissaoIdentidade":null,"cdTipoCertidao":null,"nrCertidaoNova":"","noCartorioCertidao":"",'
'"nrLivroCertidao":null,"nrFolhaCertidao":null,"noTermoCertidao":"","dtEmissaoCertidao":null,"nrCtps":null,"nrSerieCtps":null,"cdSiglaUfCtps":"--","nrPispasep":"",'
'"cartaoMunicipalRetirado":"N","nrNis":"","rendaMensal":null,"profissao":"","dtObito":null,"bloqueio":"0","origem":"S","cdDomicilio":1838,"atendimentos":0,'
'"idUsuarioCadastro":null';
Batch batch = db.batch();
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
'ID_BAIRRO' : list[i]['idBairro'],
'NO_BAIRRO' : list[i]['nomeBairro'],
};
rows.add(row);
}
rows.forEach((row) {
batch.insert('BAIRROS', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> BAIRROS = await db.query('BAIRROS');
print('Total de BAIRROS : ${BAIRROS.length}');
return db;
}
Future insertTiposLogradouros(var value)async{
List list = value;
List<Map<String, dynamic>> rows = [];
Database db = await DbSqliteLoad().intialDB();
Batch batch = db.batch();
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
'ID_LOGR_TIPO' : value[i]['idTipoLogradouro'],
'NO_LOGR_TIPO' : value[i]['nomeTipoLogradouro'],
};
rows.add(row);
}
rows.forEach((row) {
batch.insert('LOGRADOUROS_TIPOS', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> LOGRADOUROS_TIPOS = await db.query('LOGRADOUROS_TIPOS');
print('Total de LOGRADOUROS_TIPOS : ${LOGRADOUROS_TIPOS.length}');
return db;
}
Future insertLogradouros(var value)async{
List list = value;
List<Map<String, dynamic>> rows = [];
Database db = await DbSqliteLoad().intialDB();
Batch batch = db.batch();
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
'ID_LOGR_ENDERECO' : value[i]['idLogradouro'],
'ID_LOGR_TIPO' : value[i]['idTipoLogradouro'],
'DESC_LOGR_ENDERECO' : value[i]['descLogradouro'],
'ID_BAIRRO' : value[i]['idBairro'],
};
rows.add(row);
}
rows.forEach((row) {
batch.insert('LOGRADOUROS_ENDERECOS', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> LOGRADOUROS_ENDERECOS = await db.query('LOGRADOUROS_ENDERECOS');
print('Total de LOGRADOUROS_ENDERECOS : ${LOGRADOUROS_ENDERECOS.length}');
return db;
}
Future insertLoteamentos(var value)async{
List list = value;
List<Map<String, dynamic>> rows = [];
Database db = await DbSqliteLoad().intialDB();
Batch batch = db.batch();
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
'ID_LOGR_LOTEAMENTO' : value[i]['idLoteamento'],
'DESC_LOGR_LOTEAMENTO' : value[i]['descLoteamento'],
};
rows.add(row);
}
rows.forEach((row) {
batch.insert('LOGRADOUROS_LOTEAMENTOS', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> LOGRADOUROS_LOTEAMENTOS = await db.query('LOGRADOUROS_LOTEAMENTOS');
print('Total de LOGRADOUROS_LOTEAMENTOS : ${LOGRADOUROS_LOTEAMENTOS.length}');
return db;
}
Future insertProfissionais(var value)async{
List list = value;
List<Map<String, dynamic>> rows = [];
Database db = await DbSqliteLoad().intialDB();
Batch batch = db.batch();
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
'ID_PROFISSIONAL' : value[i]['idProfissional'],
'NOME_PROFISSIONAL': value[i]['nomeProfissional'],
'CNS_PROFISSIONAL' : value[i]['CNSProfissional'],
'USERNAME' : value[i]['username'],
'SENHA' : value[i]['senha'],
'BLOQUEIO_ACESSO' : value[i]['bloqueioAcesso'],
'ID_UNIDADE' : value[i]['idUnidade'],
};
rows.add(row);
}
rows.forEach((row) {
batch.insert('PROFISSIONAIS', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> PROFISSIONAIS = await db.query('PROFISSIONAIS');
print('Total de PROFISSIONAIS : ${PROFISSIONAIS.length}');
return db;
}
Future insertProfissionaisCBOs(var value)async{
List list = value;
List<Map<String, dynamic>> rows = [];
Database db = await DbSqliteLoad().intialDB();
Batch batch = db.batch();
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
'ID_PROFISSIONAL' : value[i]['idProfissional'],
'CODIGO_CBO' : value[i]['codCBO'],
};
rows.add(row);
}
rows.forEach((row) {
batch.insert('PROFISSIONAIS_CBOS', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> PROFISSIONAIS_CBOS = await db.query('PROFISSIONAIS_CBOS');
print('Total de PROFISSIONAIS_CBOS : ${PROFISSIONAIS_CBOS.length}');
return db;
}
Future insertCidadaos(var value,String type,String CD_USUARIO_SUS)async{
List<Map<String, dynamic>> rows = [];
Database db = await DbSqliteLoad().intialDB();
Batch batch = db.batch();
if(value.toString() == '[Erro para carregar os Cidadaos - Sync -> syncCidadaos()]'){
return db;
}
if(type=='sync'){
//para a carga inicial o datalista funciona
List dataList = value;
for (int i = 0; i < dataList.length; i++) {
Map<String, dynamic> row = {
'ID_CIDADAO' : value[i]['idCidadao'],
'CD_USUARIO_SUS' : value[i]['cdUsuarioSus'],
@@ -146,6 +198,7 @@ class DbSqliteSync{
'NO_MUNICIPIO_NASC' : value[i]['noMunicipioNasc'],
'ESTADO_UF_NASC' : value[i]['cdEstado'],
'ID_ETNIA' : value[i]['cdEtnia'],
'ID_ETNIA_INDIGENA' : value[i]['cdEtniaIndigena'],
'ID_ESCOLARIDADE' : value[i]['cdUsuarioEscolaridade'],
'ID_DEFICIENCIA' : value[i]['nrDeficiencia'],
'NOME_MAE' : value[i]['noMae'],
@@ -174,8 +227,8 @@ class DbSqliteSync{
'ZONA_LOGR' : value[i]['zona'],
'DDD_TELEFONE' : value[i]['nrDddTelefone'],
'NUM_TELEFONE' : value[i]['nrTelefone'],
'DDD_CELULAR' : value[i]['nrDddCelular'],
'NUM_CELULAR' : value[i]['nrCelular'],
'DDD_CELULAR' : value[i]['nrDddCelular'],
'NUM_CELULAR' : value[i]['nrCelular'],
'DDD_RECADO' : value[i]['nrDddRecado'],
'NUM_RECADO' : value[i]['nrRecado'],
'EMAIL' : value[i]['email'],
@@ -212,75 +265,98 @@ class DbSqliteSync{
'ID_USUARIO_CADASTRO' : value[i]['idUsuarioCadastro'],
'ID_DOMICILIO' : value[i]['cdDomicilio'],
'ATENDIMENTOS' : value[i]['atendimentos'],
'RENDA_TOTAL_FAMILIAR': value[i]['rendaTotalFamiliar'],
'POSSUI_VEICULO': value[i]['possuiVeiculo'],
'MODELO_VEICULO': value[i]['modeloVeiculo'] ,
'ANO_VEICULO': value[i]['anoVeiculo'],
'POSSUI_FINANCIAMENTO': value[i]['possuiFinanciamento'] ,
'VALOR_PARCELA_FINANCIAMENTO': value[i]['valorParcelaFinanciamento'] ,
'POSSUI_EMPRESTIMO': value[i]['possuiEmprestimo'] ,
'VALOR_PARCELA_EMPRESTIMO': value[i]['valorParcelaEmprestimo'],
'SINCRONIZADO' : '',
};
int id = await db.insert('CIDADAOS', row);
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
// print(await db.query('CIDADAOS'));
rows.add(row);
}
rows.forEach((row) {
batch.insert('CIDADAOS', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> CIDADAOS = await db.query('CIDADAOS');
print('Total de CIDADAOS : ${CIDADAOS.length}');
}else if(type=='new'){
int id = await db.insert('CIDADAOS', value);
//testar depois ao incluir um novo cidadao se precisara do map data
Map<String, dynamic> dataMap = value;
int id = await db.insert('CIDADAOS', dataMap);
// print('novo id $id');
}else if(type=='update'){
await db.update('CIDADAOS', value,where: "CD_USUARIO_SUS = '$CD_USUARIO_SUS'");
//testar depois ao incluir um novo cidadao se precisara do map data
Map<String, dynamic> dataMap = value;
await db.update('CIDADAOS', dataMap,where: "CD_USUARIO_SUS = '$CD_USUARIO_SUS'");
}
return db;
}
Future insertCadastrosDomiciliares(var value,String type,int ID_DOMICILIO,int ID_CIDADAO,String CD_USUARIO_SUS,int i)async{
Database db = await DbSqliteLoad().intialDB();
// CIDADAO_DOMICILIO (ID_DOMICILIO,TIPO_IMOVEL,ID_AREA_DOMICILIO,ID_MICROAREA_DOMICILIO,FORA_AREA,SITUACAO_MORADIA,TIPO_LOCALIDADE,TIPO_DOMICILIO,NUM_MORADORES,
// NUM_COMODOS,SITUACAO_RURAL,TIPO_ACESSO,MAT_PREDOMINANTE,DISPONIBILIDADE_ENERGIA,TIPO_ABASTECIMENTO,TRATAMENTO_AGUA,DESTINO_LIXO,ESCOAMENTO,FL_ANIMAIS,
// ANIMAIS_GATO,ANIMAIS_CACHORRO,ANIMAIS_PASSARO,ANIMAIS_OUTROS,QTDE_ANIMAIS,CBO_RESP_CADASTRO,ID_RESP_CADASTRO,CNES_RESP_CADASTRO,INE_RESP_CADASTRO,DT_CADASTRO,
// ID_EQUIPE,ORIGEM,SINCRONIZADO,NOME_INSTITUICAO_PERMANENCIA,PROFISSIONAIS_VINCULADOS_INST,RESPONSAVEL_TECNICO_INST,CNS_RESP_TECNICO_INST,CARGO_RESP_TECNICO_INST,
// TEL_RESP_TECNICO_INST)
Future insertCadastrosDomiciliares(var value,String type,int ID_DOMICILIO,int ID_CIDADAO,String CD_USUARIO_SUS)async{
List<Map<String, dynamic>> rows = [];
Database db = await DbSqliteLoad().intialDB();
Batch batch = db.batch();
// "cdDomicilio":16,"cdTipoImovel":1,"cdAreaDomicilio":null,"cdMicroareaDomicilio":null,"foraArea":1,"cdSituacao":2,"cdTipoLocalidade":1,"cdTipoDomicilio":1,
// "nrMoradores":6,"nrComodo":7,"situacaoProducaoRural":0,"tipoAcesso":1,"materialParedesExternas":1,"dispEnergiaEletrica":1,"cdTipoAbastecimento":1,"cdTratamentoAgua":4,
// "cdDestinoLixo":1,"cdEscoamento":1,"animais":0,"animaisGato":0,"animaisCachorro":0,"animaisPassaro":0,"animaisOutros":0,"animaisQtde":null,"respCadastro":68,
// "cnesUnidade":"9372253","cboRespCadastro":"515105","ine":"0001485628","dtCadastro":"2021-11-10","cdEquipe":5,"noInstPermanencia":null,"outrosProfissionaisInst":null,
// "noResponsavelInst":null,"cnsResponsavelInst":null,"gargoResponsavelInst":null,"telefoneResponsavelInst":null
if(type=='sync'){
List list = value;
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
'ID_DOMICILIO' : value[i]['cdDomicilio'],
'TIPO_IMOVEL' : value[i]['cdTipoImovel'],
'ID_AREA_DOMICILIO' : value[i]['cdAreaDomicilio'],
'ID_MICROAREA_DOMICILIO' : value[i]['cdMicroareaDomicilio'],
'FORA_AREA' : value[i]['foraArea'],
'SITUACAO_MORADIA' : value[i]['cdSituacao'],
'TIPO_LOCALIDADE' : value[i]['cdTipoLocalidade'],
'TIPO_DOMICILIO' : value[i]['cdTipoDomicilio'],
'NUM_MORADORES' : value[i]['nrMoradores'],
'NUM_COMODOS' : value[i]['nrComodo'],
'SITUACAO_RURAL' : value[i]['situacaoProducaoRural'],
'TIPO_ACESSO' : value[i]['tipoAcesso'],
'MAT_PREDOMINANTE' : value[i]['materialParedesExternas'],
'DISPONIBILIDADE_ENERGIA' : value[i]['dispEnergiaEletrica'],
'TIPO_ABASTECIMENTO' : value[i]['cdTipoAbastecimento'],
'TRATAMENTO_AGUA' : value[i]['cdTratamentoAgua'],
'DESTINO_LIXO' : value[i]['cdDestinoLixo'],
'ESCOAMENTO' : value[i]['cdEscoamento'],
'FL_ANIMAIS' : value[i]['animais'],
'ANIMAIS_GATO' : value[i]['animaisGato'],
'ANIMAIS_CACHORRO' : value[i]['animaisCachorro'],
'ANIMAIS_PASSARO' : value[i]['animaisPassaro'],
'ANIMAIS_OUTROS' : value[i]['animaisOutros'],
'QTDE_ANIMAIS' : value[i]['animaisQtde'],
'CBO_RESP_CADASTRO' : value[i]['cboRespCadastro'],
'ID_RESP_CADASTRO' : value[i]['respCadastro'],
'CNES_RESP_CADASTRO' : value[i]['cnesUnidade'],
'INE_RESP_CADASTRO' : value[i]['ine'],
'DT_CADASTRO' : value[i]['dtCadastro'],
'ID_EQUIPE' : value[i]['cdEquipe'],
'ORIGEM' : '',
'SINCRONIZADO' : '',
'NOME_INSTITUICAO_PERMANENCIA' : value[i]['noInstPermanencia'],
'ID_DOMICILIO': value[i]['cdDomicilio'],
'TIPO_IMOVEL': value[i]['cdTipoImovel'],
'ID_AREA_DOMICILIO': value[i]['cdAreaDomicilio'],
'ID_MICROAREA_DOMICILIO': value[i]['cdMicroareaDomicilio'],
'FORA_AREA': value[i]['foraArea'],
'SITUACAO_MORADIA': value[i]['cdSituacao'],
'TIPO_LOCALIDADE': value[i]['cdTipoLocalidade'],
'TIPO_DOMICILIO': value[i]['cdTipoDomicilio'],
'NUM_MORADORES': value[i]['nrMoradores'],
'NUM_COMODOS': value[i]['nrComodo'],
'SITUACAO_RURAL': value[i]['situacaoProducaoRural'],
'TIPO_ACESSO': value[i]['tipoAcesso'],
'MAT_PREDOMINANTE': value[i]['materialParedesExternas'],
'DISPONIBILIDADE_ENERGIA': value[i]['dispEnergiaEletrica'],
'TIPO_ABASTECIMENTO': value[i]['cdTipoAbastecimento'],
'TRATAMENTO_AGUA': value[i]['cdTratamentoAgua'],
'DESTINO_LIXO': value[i]['cdDestinoLixo'],
'ESCOAMENTO': value[i]['cdEscoamento'],
'FL_ANIMAIS': value[i]['animais'],
'ANIMAIS_GATO': value[i]['animaisGato'],
'ANIMAIS_CACHORRO': value[i]['animaisCachorro'],
'ANIMAIS_PASSARO': value[i]['animaisPassaro'],
'ANIMAIS_OUTROS': value[i]['animaisOutros'],
'QTDE_ANIMAIS': value[i]['animaisQtde'],
'CBO_RESP_CADASTRO': value[i]['cboRespCadastro'],
'ID_RESP_CADASTRO': value[i]['respCadastro'],
'CNES_RESP_CADASTRO': value[i]['cnesUnidade'],
'INE_RESP_CADASTRO': value[i]['ine'],
'DT_CADASTRO': value[i]['dtCadastro'],
'ID_EQUIPE': value[i]['cdEquipe'],
'ORIGEM': '',
'SINCRONIZADO': '',
'NOME_INSTITUICAO_PERMANENCIA': value[i]['noInstPermanencia'],
'PROFISSIONAIS_VINCULADOS_INST': value[i]['outrosProfissionaisInst'],
'RESPONSAVEL_TECNICO_INST' : value[i]['noResponsavelInst'],
'CARGO_RESP_TECNICO_INST' : value[i]['gargoResponsavelInst'],
'TEL_RESP_TECNICO_INST' : value[i]['telefoneResponsavelInst'],
'RESPONSAVEL_TECNICO_INST': value[i]['noResponsavelInst'],
'CARGO_RESP_TECNICO_INST': value[i]['gargoResponsavelInst'],
'TEL_RESP_TECNICO_INST': value[i]['telefoneResponsavelInst'],
};
int id = await db.insert('CIDADAO_DOMICILIO', row);
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
// print(await db.query('CIDADAO_DOMICILIO'));
rows.add(row);
}
rows.forEach((row) {
batch.insert('CIDADAO_DOMICILIO', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> CIDADAO_DOMICILIO = await db.query('CIDADAO_DOMICILIO');
print('Total de CIDADAO_DOMICILIO : ${CIDADAO_DOMICILIO.length}');
}else if(type=='new'){
int id = await db.insert('CIDADAO_DOMICILIO', value);
print('novo id $id');
@@ -311,140 +387,139 @@ class DbSqliteSync{
return db;
}
Future insertCadastrosIndividuais(var value,String type,int ID_CIDADAO,int i)async{
Database db = await DbSqliteLoad().intialDB();
// CADASTROS_INDIVIDUAIS (ID_CAD_INDIVIDUAL,STATUS_CADASTRO,ID_CIDADAO,CD_USUARIO_SUS,ID_AREA_CIDADAO,ID_MICROAREA_CIDADAO,FORA_AREA,RESPONSAVEL_FAMILIAR,
// ID_RESPONSAVEL_FAMILIAR,NOME_RESPONSAVEL_FAMILIAR,PARENTESCO,ESCOLARIDADE,FREQ_ESCOLA_CRECHE,SITUACAO_MERCADO,CUIDADOR_TRADICIONAL,GRUPO_COMUNITARIO,PLANO_PRIVADO,
// COMUNIDADE_TRADICIONAL,COM_TRADI_QUAL,ORIENT_SEXUAL,TEM_DEFICIENCIA,DEF_AUDITIVA,DEF_INTELECTUAL,DEF_VISUAL,DEF_FISICA,DEF_OUTRAS,SAIDA_CADASTRO,DATA_SAIDA_CADASTRO,
// CADASTRO_RECUSADO,GESTANTE,MATERNIDADE_REFERENCIA,PESO,FUMANTE,USA_ALCOOL,USA_DROGAS,HIPERTENSAO,DIABETES,AVC_DERRAME,INFARTO,HANSENIASE,TUBERCULOSE,CANCER,
// INTERNACAO,MOTIVO,DOENCA_CARDIACA,PROBLEMA_RINS,DOENCA_PULMAO,SAUDE_MENTAL,ACAMADO,DOMICILIADO,PLANTAS_MED,PLANTAS_MED_QUAIS,PIC,OUTRAS_CONDICOES,TEMPO_SITUACAO_RUA
// ACOMP_INTITUICAO,ACOMP_INTITUICAO_QUAL,BENEFICIO,REF_FAMILIAR,VISITA_FAMILIAR,PARENTESCO_VISITA,ALIMENTACAO_DIARIA,REST_POPULAR,DOACAO_REST,DOACAO_RELIGIOSO,
// DOACAO_POPULAR,OUTROS_ALIM,ACESSO_HIGIENE,BANHO,SANITARIO,HIGIENE_BUCAL,OUTROS_HIGIENE,FICHA_ALTERACAO,ID_RESP_CADASTRO,CNES_RESP_CADASTRO,CBO_RESP_CADASTRO,
// INE_RESP_CADASTRO,DT_CADASTRO,ID_EQUIPE,ORIGEM,SINCRONIZADO,DT_ENTRADA_BRASIL,DT_NATURALIZACAO,PORTARIA_NATURALIZACAO,CRIANCAS_ADULTO,CRIANCAS_OUTRAS_CRIANCAS,
// CRIANCAS_ADOLESCENTE,CRIANCAS_SOZINHA,CRIANCAS_CRECHE,CRIANCAS_OUTRO,IDENTIDADE_GENERO)
Future insertCadastrosIndividuais(var value,String type,int ID_CIDADAO)async{
// "idCadIndividual":5,"idCidadao":6,"cdUsuarioSUS":"4576021578C044ACF57CF5582356B697","idAreaCidadao":null,"idMicroAreaCidadao":null,"foraArea":1,"flResponsavelFamiliar":1,
// "cdResponsavelFamiliar":"4576021578C044ACF57CF5582356B697","nomeResponsavelFamiliar":"MARIA CLEIDIANA DE OLIVEIRA CRUZ","parentesco":null,"curso":11,"frequentaEscola":null,
// "situacaoMercado":2,"cuidadorTrad":2,"grupoComunitario":2,"plSaudePrivado":2,"comunidadeTradicional":2,"comunidadeTradicionalEspec":"","orientacaoSexual":2,
// "temDeficiencia":2,"defAuditiva":2,"defIntelectual":2,"defVisual":2,"defFisica":2,"defOutros":2,"saidaMotivo":null,"saidaData":null,"recusado":null,"gestante":null,
// "maternidadeReferencia":"","peso":2,"fumante":null,"usaAlcool":1,"outrasDrogas":2,"hipertensao":2,"diabetes":2,"avcDerrame":2,"infarto":2,"hanseniase":2,"tuberculose":2,
// "cancer":2,"internacao12Meses":2,"motivo":"","doencaCardiaca":1,"problemasRins":1,"doencaRespiratoriaPulmao":1,"tratamInternacaoPsiquiatrica":2,"acamado":2,
// "domiciliado":2,"plantasMedicinais":2,"plantasQuais":"","praticasIntegrativasComplem":null,"outrasCondSaude":"","tempoSituacaoRua":1,"acompanhadoInstituicao":null,
// "instituicaoQual":"","recebeBeneficio":null,"referenciaFamiliar":null,"visitaFamiliarFrequente":null,"visitaFamiliarParentesco":"","alimentacaoDiaria":null,
// "alimentecaoRestaurantePop":2,"alimentacaoDoacaoRestaurante":2,"alimentacaoDoacaoGrupoRel":2,"alimentacaoDoacaoPop":2,"alimentacaoOutros":2,"higienePessoal":2,
// "higieneBanho":2,"higieneSanitario":2,"higieneBucal":2,"higieneOutros":2,"fichaAlteracao":null,"idProfissionalResponsavel":68,"cnesUnidade":"9372253",
// "cboProfissional":"515105", "ine":"0001485628","dtCadastro":"2022-04-05","cdEquipe":5,"dtEntradaBrasil":null,"dtNaturalizado":null,"portariaNaturalizacao":"",
// "criancasAdulto":2,"criancasOutrasCriancas":2,"criancasAdolescente":2,"criancasSozinha":2,"criancasCresce":2,"criancasOutro":2,"identidadeGenero":null,"statusCadastro":null}
List<Map<String, dynamic>> rows = [];
Database db = await DbSqliteLoad().intialDB();
Batch batch = db.batch();
if(type=='sync'){
List list = value;
for (int i = 0; i < list.length; i++) {
Map<String, dynamic> row = {
'ID_CAD_INDIVIDUAL' : value[i]['idCadIndividual'],
'STATUS_CADASTRO' : value[i]['statusCadastro'],
'ID_CIDADAO' : value[i]['idCidadao'],
'CD_USUARIO_SUS' : value[i]['cdUsuarioSUS'],
'ID_AREA_CIDADAO' : value[i]['idAreaCidadao'],
'ID_MICROAREA_CIDADAO' : value[i]['idMicroAreaCidadao'],
'FORA_AREA' : value[i]['foraArea'],
'RESPONSAVEL_FAMILIAR' : value[i]['flResponsavelFamiliar'],
'ID_RESPONSAVEL_FAMILIAR' : value[i]['cdResponsavelFamiliar'],
'NOME_RESPONSAVEL_FAMILIAR' : value[i]['nomeResponsavelFamiliar'],
'PARENTESCO' : value[i]['parentesco'],
'ESCOLARIDADE' : value[i]['curso'],
'FREQ_ESCOLA_CRECHE' : value[i]['frequentaEscola'],
'SITUACAO_MERCADO' : value[i]['situacaoMercado'],
'CUIDADOR_TRADICIONAL' : value[i]['cuidadorTrad'],
'GRUPO_COMUNITARIO' : value[i]['grupoComunitario'],
'PLANO_PRIVADO' : value[i]['plSaudePrivado'],
'COMUNIDADE_TRADICIONAL' : value[i]['comunidadeTradicional'],
'COM_TRADI_QUAL' : value[i]['comunidadeTradicionalEspec'],
'ORIENT_SEXUAL' : value[i]['orientacaoSexual'],
'TEM_DEFICIENCIA' : value[i]['temDeficiencia'],
'DEF_AUDITIVA' : value[i]['defAuditiva'],
'DEF_INTELECTUAL' : value[i]['defIntelectual'],
'DEF_VISUAL' : value[i]['defVisual'],
'DEF_FISICA' : value[i]['defFisica'],
'DEF_OUTRAS' : value[i]['defOutros'],
'SAIDA_CADASTRO' : value[i]['saidaMotivo'],
'DATA_SAIDA_CADASTRO' : value[i]['saidaData'],
'CADASTRO_RECUSADO' : value[i]['recusado'],
'GESTANTE' : value[i]['gestante'],
'MATERNIDADE_REFERENCIA' : value[i]['maternidadeReferencia'],
'PESO' : value[i]['peso'],
'FUMANTE' : value[i]['fumante'],
'USA_ALCOOL' : value[i]['usaAlcool'],
'USA_DROGAS' : value[i]['outrasDrogas'],
'HIPERTENSAO' : value[i]['hipertensao'],
'DIABETES' : value[i]['diabetes'],
'AVC_DERRAME' : value[i]['avcDerrame'],
'INFARTO' : value[i]['infarto'],
'HANSENIASE' : value[i]['hanseniase'],
'TUBERCULOSE' : value[i]['tuberculose'],
'CANCER' : value[i]['cancer'],
'INTERNACAO' : value[i]['internacao12Meses'],
'MOTIVO' : value[i]['motivo'],
'DOENCA_CARDIACA' : value[i]['doencaCardiaca'],
'PROBLEMA_RINS' : value[i]['problemasRins'],
'DOENCA_PULMAO' : value[i]['doencaRespiratoriaPulmao'],
'SAUDE_MENTAL' : value[i]['tratamInternacaoPsiquiatrica'],
'ACAMADO' : value[i]['acamado'],
'DOMICILIADO' : value[i]['domiciliado'],
'PLANTAS_MED' : value[i]['plantasMedicinais'],
'PLANTAS_MED_QUAIS' : value[i]['plantasQuais'],
'PIC' : value[i]['praticasIntegrativasComplem'],
'OUTRAS_CONDICOES' : value[i]['outrasCondSaude'],
'TEMPO_SITUACAO_RUA' : value[i]['tempoSituacaoRua'],
'ACOMP_INTITUICAO' : value[i]['acompanhadoInstituicao'],
'ACOMP_INTITUICAO_QUAL' : value[i]['instituicaoQual'],
'BENEFICIO' : value[i]['recebeBeneficio'],
'REF_FAMILIAR' : value[i]['referenciaFamiliar'],
'PARENTESCO_VISITA' : value[i]['visitaFamiliarParentesco'],
'ALIMENTACAO_DIARIA' : value[i]['alimentacaoDiaria'],
'REST_POPULAR' : value[i]['alimentecaoRestaurantePop'],
'DOACAO_REST' : value[i]['alimentacaoDoacaoRestaurante'],
'DOACAO_RELIGIOSO' : value[i]['alimentacaoDoacaoGrupoRel'],
'DOACAO_POPULAR' : value[i]['alimentacaoDoacaoPop'],
'OUTROS_ALIM' : value[i]['alimentacaoOutros'],
'ACESSO_HIGIENE' : value[i]['higienePessoal'],
'BANHO' : value[i]['higieneBanho'],
'SANITARIO' : value[i]['higieneSanitario'],
'HIGIENE_BUCAL' : value[i]['higieneBucal'],
'OUTROS_HIGIENE' : value[i]['higieneOutros'],
'FICHA_ALTERACAO' : value[i]['fichaAlteracao'],
'ID_RESP_CADASTRO' : value[i]['idProfissionalResponsavel'],
'CNES_RESP_CADASTRO' : value[i]['cnesUnidade'],
'CBO_RESP_CADASTRO' : value[i]['cboProfissional'],
'INE_RESP_CADASTRO' : value[i]['ine'],
'DT_CADASTRO' : value[i]['dtCadastro'],
'ID_EQUIPE' : value[i]['cdEquipe'],
'ORIGEM' : '',
'SINCRONIZADO' : '',
'DT_ENTRADA_BRASIL' : value[i]['dtEntradaBrasil'],
'DT_NATURALIZACAO' : value[i]['dtNaturalizado'],
'PORTARIA_NATURALIZACAO' : value[i]['portariaNaturalizacao'],
'CRIANCAS_ADULTO' : value[i]['criancasAdulto'],
'CRIANCAS_OUTRAS_CRIANCAS' : value[i]['criancasOutrasCriancas'],
'CRIANCAS_ADOLESCENTE' : value[i]['criancasAdolescente'],
'CRIANCAS_SOZINHA' : value[i]['criancasSozinha'],
'CRIANCAS_CRECHE' : value[i]['criancasCresce'],
'CRIANCAS_OUTRO' : value[i]['criancasOutro'],
'IDENTIDADE_GENERO' : value[i]['identidadeGenero'],
'ID_CAD_INDIVIDUAL': value[i]['idCadIndividual'],
'STATUS_CADASTRO': value[i]['statusCadastro'],
'ID_CIDADAO': value[i]['idCidadao'],
'CD_USUARIO_SUS': value[i]['cdUsuarioSUS'],
'ID_AREA_CIDADAO': value[i]['idAreaCidadao'],
'ID_MICROAREA_CIDADAO': value[i]['idMicroAreaCidadao'],
'FORA_AREA': value[i]['foraArea'],
'RESPONSAVEL_FAMILIAR': value[i]['flResponsavelFamiliar'],
'ID_RESPONSAVEL_FAMILIAR': value[i]['cdResponsavelFamiliar'],
'NOME_RESPONSAVEL_FAMILIAR': value[i]['nomeResponsavelFamiliar'],
'PARENTESCO': value[i]['parentesco'],
'ESCOLARIDADE': value[i]['curso'],
'FREQ_ESCOLA_CRECHE': value[i]['frequentaEscola'],
'SITUACAO_MERCADO': value[i]['situacaoMercado'],
'CUIDADOR_TRADICIONAL': value[i]['cuidadorTrad'],
'GRUPO_COMUNITARIO': value[i]['grupoComunitario'],
'PLANO_PRIVADO': value[i]['plSaudePrivado'],
'COMUNIDADE_TRADICIONAL': value[i]['comunidadeTradicional'],
'COM_TRADI_QUAL': value[i]['comunidadeTradicionalEspec'],
'ORIENT_SEXUAL': value[i]['orientacaoSexual'],
'TEM_DEFICIENCIA': value[i]['temDeficiencia'],
'DEF_AUDITIVA': value[i]['defAuditiva'],
'DEF_INTELECTUAL': value[i]['defIntelectual'],
'DEF_VISUAL': value[i]['defVisual'],
'DEF_FISICA': value[i]['defFisica'],
'DEF_OUTRAS': value[i]['defOutros'],
'SAIDA_CADASTRO': value[i]['saidaMotivo'],
'DATA_SAIDA_CADASTRO': value[i]['saidaData'],
'CADASTRO_RECUSADO': value[i]['recusado'],
'GESTANTE': value[i]['gestante'],
'MATERNIDADE_REFERENCIA': value[i]['maternidadeReferencia'],
'PESO': value[i]['peso'],
'FUMANTE': value[i]['fumante'],
'USA_ALCOOL': value[i]['usaAlcool'],
'USA_DROGAS': value[i]['outrasDrogas'],
'HIPERTENSAO': value[i]['hipertensao'],
'DIABETES': value[i]['diabetes'],
'AVC_DERRAME': value[i]['avcDerrame'],
'INFARTO': value[i]['infarto'],
'HANSENIASE': value[i]['hanseniase'],
'TUBERCULOSE': value[i]['tuberculose'],
'CANCER': value[i]['cancer'],
'INTERNACAO': value[i]['internacao12Meses'],
'MOTIVO': value[i]['motivo'],
'DOENCA_CARDIACA': value[i]['doencaCardiaca'],
'PROBLEMA_RINS': value[i]['problemasRins'],
'DOENCA_PULMAO': value[i]['doencaRespiratoriaPulmao'],
'SAUDE_MENTAL': value[i]['tratamInternacaoPsiquiatrica'],
'ACAMADO': value[i]['acamado'],
'DOMICILIADO': value[i]['domiciliado'],
'PLANTAS_MED': value[i]['plantasMedicinais'],
'PLANTAS_MED_QUAIS': value[i]['plantasQuais'],
'PIC': value[i]['praticasIntegrativasComplem'],
'OUTRAS_CONDICOES': value[i]['outrasCondSaude'],
'TEMPO_SITUACAO_RUA': value[i]['tempoSituacaoRua'],
'ACOMP_INTITUICAO': value[i]['acompanhadoInstituicao'],
'ACOMP_INTITUICAO_QUAL': value[i]['instituicaoQual'],
'BENEFICIO': value[i]['recebeBeneficio'],
'REF_FAMILIAR': value[i]['referenciaFamiliar'],
'PARENTESCO_VISITA': value[i]['visitaFamiliarParentesco'],
'ALIMENTACAO_DIARIA': value[i]['alimentacaoDiaria'],
'REST_POPULAR': value[i]['alimentecaoRestaurantePop'],
'DOACAO_REST': value[i]['alimentacaoDoacaoRestaurante'],
'DOACAO_RELIGIOSO': value[i]['alimentacaoDoacaoGrupoRel'],
'DOACAO_POPULAR': value[i]['alimentacaoDoacaoPop'],
'OUTROS_ALIM': value[i]['alimentacaoOutros'],
'ACESSO_HIGIENE': value[i]['higienePessoal'],
'BANHO': value[i]['higieneBanho'],
'SANITARIO': value[i]['higieneSanitario'],
'HIGIENE_BUCAL': value[i]['higieneBucal'],
'OUTROS_HIGIENE': value[i]['higieneOutros'],
'FICHA_ALTERACAO': value[i]['fichaAlteracao'],
'ID_RESP_CADASTRO': value[i]['idProfissionalResponsavel'],
'CNES_RESP_CADASTRO': value[i]['cnesUnidade'],
'CBO_RESP_CADASTRO': value[i]['cboProfissional'],
'INE_RESP_CADASTRO': value[i]['ine'],
'DT_CADASTRO': value[i]['dtCadastro'],
'ID_EQUIPE': value[i]['cdEquipe'],
'ORIGEM': '',
'SINCRONIZADO': '',
'DT_ENTRADA_BRASIL': value[i]['dtEntradaBrasil'],
'DT_NATURALIZACAO': value[i]['dtNaturalizado'],
'PORTARIA_NATURALIZACAO': value[i]['portariaNaturalizacao'],
'CRIANCAS_ADULTO': value[i]['criancasAdulto'],
'CRIANCAS_OUTRAS_CRIANCAS': value[i]['criancasOutrasCriancas'],
'CRIANCAS_ADOLESCENTE': value[i]['criancasAdolescente'],
'CRIANCAS_SOZINHA': value[i]['criancasSozinha'],
'CRIANCAS_CRECHE': value[i]['criancasCresce'],
'CRIANCAS_OUTRO': value[i]['criancasOutro'],
'IDENTIDADE_GENERO': value[i]['identidadeGenero'],
'FIBROMIALGIA': value[i]['fibromialgia'],
'TRANSTORNO_ESPECTRO_AUTISTA': value[i]['transtornoEspectroAutista'],
};
int id = await db.insert('CADASTROS_INDIVIDUAIS', row);
// print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
// print(await db.query('CADASTROS_INDIVIDUAIS'));
rows.add(row);
}
rows.forEach((row) {
batch.insert('CADASTROS_INDIVIDUAIS', row);
});
List<Object?> result = await batch.commit();
print('Linhas inseridas: ${result.length}');
List<Map<String, dynamic>> CADASTROS_INDIVIDUAIS = await db.query('CADASTROS_INDIVIDUAIS');
print('Total de CADASTROS_INDIVIDUAIS : ${CADASTROS_INDIVIDUAIS.length}');
}else if(type=='new'){
int id = await db.insert('CADASTROS_INDIVIDUAIS', value);
Map<String, dynamic> dataMap = value;
int id = await db.insert('CADASTROS_INDIVIDUAIS', dataMap);
// print('novo id $id');
}else if(type=='update'){
await db.update('CADASTROS_INDIVIDUAIS', value,where: "ID_CIDADAO = $ID_CIDADAO");
Map<String, dynamic> dataMap = value;
await db.update('CADASTROS_INDIVIDUAIS', dataMap ,where: "ID_CIDADAO = $ID_CIDADAO");
}
return db;
}
Future insertAtendimentoDomiciliar(var value)async{
Future insertAtendimentoDomiciliar(var value, bool novo, int ID_ATENDIMENTO_DOMICILIAR)async{
Database db = await DbSqliteLoad().intialDB();
int id = await db.insert('ATENDIMENTOS_DOMICILIARES', value);
// print(await db.query('ATENDIMENTOS_DOMICILIARES'));
return id;
if(novo){
int id = await db.insert('ATENDIMENTOS_DOMICILIARES', value);
return id;
}else{
await db.update('ATENDIMENTOS_DOMICILIARES', value ,where: "ID_ATENDIMENTO_DOMICILIAR = $ID_ATENDIMENTO_DOMICILIAR");
return ID_ATENDIMENTO_DOMICILIAR;
}
}
Future insertCondicoesAvaliadas(int ID_ATENDIMENTO_DOMICILIAR,int COND_AVAL_ATEND_DOM)async{
Database db = await DbSqliteLoad().intialDB();
@@ -457,11 +532,15 @@ class DbSqliteSync{
// print(await db.query('ATENDS_DOM_COMPL'));
return db;
}
Future insertVisitaDomiciliar(var value)async{
Future insertVisitaDomiciliar(var value, int ID_VISITA_DOMICILIAR, bool novo)async{
Database db = await DbSqliteLoad().intialDB();
int id = await db.insert('VISITAS_DOMICILIARES', value);
print(await db.query('VISITAS_DOMICILIARES'));
return id;
if(novo){
int id = await db.insert('VISITAS_DOMICILIARES', value);
return id;
}else{
await db.update('VISITAS_DOMICILIARES', value ,where: "ID_VISITA_DOMICILIAR = $ID_VISITA_DOMICILIAR");
return ID_VISITA_DOMICILIAR;
}
}
Future insertVisitaDomiciliarCOMPL(int ID_VISITA_DOMICILIAR,int ID_VISITA_DOM_TIPO, int ID_VISITA_COMPLEMENTO)async{
Database db = await DbSqliteLoad().intialDB();
@@ -475,15 +554,18 @@ class DbSqliteSync{
print(await db.query('VISITAS_DOMICILIARES_COMPL'));
return db;
}
Future insertProcedimentosDomiciliares(int ID_ATENDIMENTO_DOMICILIAR,int PROC_ATEND_DOM)async{
Future insertProcedimentosDomiciliares(int ID_ATENDIMENTO_DOMICILIAR,int PROCEDIMENTO_SELECIONADO)async{
Database db = await DbSqliteLoad().intialDB();
// ATENDS_DOM_COMPL (ID_ATENDIMENTO_DOMICILIAR INTEGER, COND_AVAL_ATEND_DOM INTEGER)
// String procedimento = await DBQuerys().buscarCodProced(PROCEDIMENTO_SELECIONADO);
Map<String,dynamic> row = {
'ID_ATENDIMENTO_DOMICILIAR' :ID_ATENDIMENTO_DOMICILIAR,
'PROC_ATEND_DOM' :PROC_ATEND_DOM,
'PROC_ATEND_DOM' :PROCEDIMENTO_SELECIONADO,
};
int id = await db.insert('ATENDS_DOM_PROC', row);
print(await db.query('ATENDS_DOM_PROC'));
// print(await db.query('ATENDS_DOM_PROC'));
return db;
}
Future insertVISITAS_DOMICILIARES_PROC(int ID_VISITA_DOMICILIAR,String COD_PROC_SIGTAP)async{
@@ -497,7 +579,7 @@ class DbSqliteSync{
print(await db.query('VISITAS_DOMICILIARES_PROC'));
return db;
}
Future saveSync(codCity,codState,urlAPI,mode,nameCityApi,nameCityFront,codCityIbge,user,idUnidade,nomeUnidade,area,microarea)async{
Future saveSync(codCity,codState,urlAPI,mode,nameCityApi,nameCityFront,codCityIbge,user,idUnidade,nomeUnidade,AREA_ID,AREA_DESCRICAO,MICROAREA_ID,MICROAREA_DESCRICAO)async{
Database db = await DbSqliteLoad().intialDB();
//refatorar cidade_load e nome_cidade
'parameters = [{"carga_inicial": 1, "cidade_load": cidade, "nome_cidade": vm.nomeCidade[cidade], "cidade_id": cidadeID, "estado": estado, "ibge": ibge, "ambiente": ambiente, "competencia": competencia.replace(/\D/g, '')}]';
@@ -513,8 +595,10 @@ class DbSqliteSync{
'AMBIENTE' : mode,
'SYNC_UNIDADE' : idUnidade,
'NOME_UNIDADE' : nomeUnidade,
'AREA' : area,
'MICROAREA' : microarea,
'AREA_ID' : AREA_ID,
'AREA_DESCRICAO' : AREA_DESCRICAO,
'MICROAREA_ID' : MICROAREA_ID,
'MICROAREA_DESCRICAO' : MICROAREA_DESCRICAO,
'ULTIMA_SINCRONIZACAO' : DateTime.now().toString(),
'COMPETENCIA' : '${DateTime.now().year}${DateTime.now().month<10?'0':''}${DateTime.now().month-1}',
};

View File

@@ -1,5 +1,7 @@
import 'package:shared_preferences/shared_preferences.dart';
import '../../models/equipe_modelo.dart';
class PrefService{
Future createCacheidUsuario(String idUsuario)async{
@@ -7,46 +9,57 @@ class PrefService{
SharedPreferences _preferences = await SharedPreferences.getInstance();
_preferences.setString('idUsuario', idUsuario);
}
Future readCacheIDUser() async{
SharedPreferences _preferences = await SharedPreferences.getInstance();
String idUsuario = _preferences.getString('idUsuario')!;
return idUsuario;
}
Future createCacheUnidade(String idUnidade, String nomeUnidade)async{
print('idUnidade $idUnidade');
print('nomeUnidade $nomeUnidade');
SharedPreferences _preferences = await SharedPreferences.getInstance();
_preferences.setString('idUnidade', idUnidade);
_preferences.setString('nomeUnidade', nomeUnidade);
return [_preferences.getString('idUnidade'),_preferences.getString('nomeUnidade')];
}
Future createCacheSync(String area,bool foraArea)async{
Future readCacheUnidade() async{
SharedPreferences _preferences = await SharedPreferences.getInstance();
return [_preferences.getInt('idUnidade'),_preferences.getString('nomeUnidade')];
}
Future createCacheSync(EquipeModelo equipe,bool foraArea)async{
SharedPreferences _preferences = await SharedPreferences.getInstance();
_preferences.setString('area', area);
_preferences.setInt('idAtbArea',equipe.ID_ATB_AREA);
_preferences.setInt('area',equipe.AREA);
_preferences.setInt('idAtbMicroarea',equipe.ID_ATB_MICROAREA==null?0:equipe.ID_ATB_MICROAREA);
_preferences.setInt('microarea',equipe.MICROAREA==null?0:equipe.MICROAREA);
_preferences.setInt('idEquipe',equipe.ID_EQUIPE);
_preferences.setInt('idUnidade',equipe.ID_UNIDADE);
_preferences.setString('ine',equipe.INE);
_preferences.setInt('idProfissional',equipe.ID_PROFISSIONAL);
_preferences.setInt('ativo',equipe.ATIVO);
_preferences.setBool('foraArea', foraArea);
}
Future createCacheModel(String user,String password,String city,String mode)async{
SharedPreferences _preferences = await SharedPreferences.getInstance();
_preferences.setString('user', user);
_preferences.setString('username', user);
_preferences.setString('password', password);
_preferences.setString('city', city);
_preferences.setString('mode', mode);
}
Future readCacheIdUsuario(String idUsuario) async{
Future readCacheIdUsername(String username) async{
SharedPreferences _preferences = await SharedPreferences.getInstance();
var idUsuario = _preferences.getString('idUsuario');
return idUsuario;
}
Future readCacheUnidade(String idUnidade) async{
SharedPreferences _preferences = await SharedPreferences.getInstance();
var idUnidade = _preferences.getString('idUnidade');
var nomeUnidade = _preferences.getString('nomeUnidade');
List list =[
idUnidade,
nomeUnidade,
];
return list;
var username = _preferences.getString('username');
return username;
}
Future readCacheModel(String user,String password,String city,String mode) async{
SharedPreferences _preferences = await SharedPreferences.getInstance();
String? user = _preferences.getString('user');
String? username = _preferences.getString('username');
String? password = _preferences.getString('password');
String? city = _preferences.getString('city');
String? mode = _preferences.getString('mode');
@@ -58,19 +71,40 @@ class PrefService{
];
return list;
}
Future readCacheSync(String area,bool foraArea) async{
Future readCacheSync() async{
SharedPreferences _preferences = await SharedPreferences.getInstance();
String? area = _preferences.getString('area');
int? AREA_ID = _preferences.getInt('idAtbArea');
int? AREA_DESCRICAO = _preferences.getInt('area');
int? MICROAREA_ID = _preferences.getInt('idAtbMicroarea');
int? MICROAREA_DESCRICAO = _preferences.getInt('microarea');
int? idEquipe = _preferences.getInt('idEquipe');
int? idUnidade = _preferences.getInt('idUnidade');
String? ine = _preferences.getString('ine');
int? idProfissional = _preferences.getInt('idProfissional');
int? ativo = _preferences.getInt('ativo');
bool? foraArea = _preferences.getBool('foraArea');
List list =[
area,
AREA_ID,
AREA_DESCRICAO,
MICROAREA_ID,
MICROAREA_DESCRICAO,
idEquipe,
idUnidade,
ine,
idProfissional,
ativo,
foraArea
];
return list;
}
Future removeCache(String idUsuario) async{
Future removeCache() async{
SharedPreferences _preferences = await SharedPreferences.getInstance();
_preferences.remove('idUsuario');
_preferences.remove('username');
}
Future removeUnidade() async{
SharedPreferences _preferences = await SharedPreferences.getInstance();
_preferences.remove('idUnidade');
_preferences.remove('nomeUnidade');
}
}

View File

@@ -1,12 +1,19 @@
import 'package:flutter/material.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/screens/select_service/service_home_screen.dart';
import 'package:rkm/screens/select_service/complementary_sheet_screen.dart';
import 'package:rkm/screens/select_service/consumption_markers_screen.dart';
import 'package:rkm/screens/select_service/eligibility_assessment_screen.dart';
import 'package:rkm/screens/select_service/procedures_screen.dart';
import 'package:rkm/screens/select_service/service_dental_screen.dart';
import 'package:rkm/screens/select_service/atendimento_domiciliar_tela.dart';
import 'package:rkm/screens/select_service/service_individual_screen.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/dropdown_button_com_pesquisa.dart';
import 'package:rkm/widgets/switch_with_subtitle.dart';
import 'package:rkm/widgets/text_default.dart';
import 'package:rkm/widgets/title_containers.dart';
import '../screens/select_service/home_visit_screen.dart';
import '../screens/select_service/visita_domiciliar_tela.dart';
import 'dropdown_button_default.dart';
import 'input_search_text.dart';
class AlertDialogDefault {
@@ -78,29 +85,54 @@ class AlertDialogDefault {
);
}
alertSelect(BuildContext context,String name) {
sucess(BuildContext context,String title,String subtitle,String textButtom, var onPressed) {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
return showDialog(
context: context,
builder: (context){
return AlertDialog(
title: TextDefault(
text: title,
color: ColorPalette.black54,
textAlign: TextAlign.center,
fontWeigth: FontWeight.bold,
),
content: TextDefault(
text: subtitle,
color: ColorPalette.black54,
maxLines: 4,
),
actions: [
ButtonDefault(
onPressed: onPressed,
title: textButtom,
width: width*0.85,
textColor: ColorPalette.white,
borderColor: ColorPalette.appBar,
background: ColorPalette.appBar,
)
],
);
}
);
}
alertSelect(BuildContext context,String name,String username, var dataPatient) {
//Cadastro e edição do Cadastro do Cidadão, Cadastro Individual, Cadastro Domiciliar e Visita Domiciliar
List list = [
'Atendimento Domiciliar',
'Atendimento Individual',
'Atendimento Odontológico',
'Avaliação de Elegibilidade',
'Ficha Complementar',
'Marcadores de Consumo',
'Procedimentos',
'Visita domiciliar',
// 'Atendimento Individual',
// 'Atendimento Odontológico',
// 'Avaliação de Elegibilidade',
// 'Ficha Complementar',
// 'Marcadores de Consumo',
// 'Procedimentos',
'Visita Domiciliar',
];
List routes = [
'/service_home',
'/service_individual',
'/service_dental',
'/eligibility_assessment',
'/complementary_sheet',
'/consumption_markers',
'/procedures',
'/home_visit',
];
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
@@ -125,18 +157,51 @@ class AlertDialogDefault {
return ListTile(
onTap: (){
Navigator.pop(context);
if(index==0){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => ServiceHomeScreen(name: name,)),
MaterialPageRoute(builder:(context) => AtendimentoDomiciliarTela(name: name,username: username,dados: null,)),
);
}else if(index == 1){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => VisitaDomiciliarTela(name: name,username: username,dados: null,)),
);
// Navigator.push(
// context,
// MaterialPageRoute(builder:(context) => ServiceIndividualScreen(username: username,dataPatient: dataPatient,)),
// );
}else if(index == 2){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => ServiceDentalScreen(username: username,)),
);
}else if(index == 3){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => EligibilityAssessmentScreen(username: username,)),
);
}else if(index == 4){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => ComplementarySheetScreen(username: username,)),
);
}else if(index == 5){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => ConsumptionMarkersScreen(username: username,)),
);
}else if(index == 6){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => ProceduresScreen(username: username,)),
);
}else if (index==7){
Navigator.push(
context,
MaterialPageRoute(builder:(context) => HomeVisitScreen(name: name,)),
MaterialPageRoute(builder:(context) => VisitaDomiciliarTela(name: name,username: username,dados: null,)),
);
}else{
Navigator.pushNamed(context, routes[index]);
}
},
tileColor: rest==0?ColorPalette.white:ColorPalette.appBar,
@@ -428,12 +493,11 @@ class AlertDialogDefault {
String? selectProfessionals,
String? selectCBO,
String add,
List list,
List listProcProfissional,
List listProc,
) {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
return showDialog(
context: context,
@@ -461,27 +525,30 @@ class AlertDialogDefault {
mainAxisSize: MainAxisSize.min,
children: [
TitleContainers(title: subtitle),
DropDownButtonDefault(
DropDownButtonComPesquisa(
onChanged: (value)=>setState((){
selectProfessionals=value;
listProc.add(selectProfessionals);
setState((){});
}),
select: selectProfessionals,
title: 'Procedimento',
list: list,
width: width
title: '',
list: listProcProfissional,
width: width*0.8,
widthContainer: width*0.75,
),
ButtonDefault(
onPressed:(){
listProc.add(selectProfessionals);
setState((){});
},
title: 'Adicionar',
width: width*0.8,
textColor: ColorPalette.white,
borderColor:ColorPalette.appBar,
background: ColorPalette.appBar,
disableColor: ColorPalette.buttonDisable,
)
// ButtonDefault(
// onPressed:(){
// listProc.add(selectProfessionals);
// setState((){});
// },
// title: 'Adicionar',
// width: width*0.8,
// textColor: ColorPalette.white,
// borderColor:ColorPalette.appBar,
// background: ColorPalette.appBar,
// disableColor: ColorPalette.buttonDisable,
// )
],
),
),
@@ -490,13 +557,14 @@ class AlertDialogDefault {
mainAxisSize: MainAxisSize.min,
children: [
TitleContainers(title: 'Procedimentos'),
list.length!=0
listProcProfissional.length!=0
?Container(
width: width*0.8,
height: height*0.4,
height: listProc.length*70,
child: ListView.builder(
itemCount: listProc.length,
itemBuilder: (context,index) {
print(listProc.length);
return Container(
width: width * 0.8,
padding: EdgeInsets.all(10),
@@ -515,6 +583,7 @@ class AlertDialogDefault {
onPressed: () =>
setState(() {
listProc.removeAt(index);
setState((){});
}),
)
],

View File

@@ -1,12 +1,16 @@
import 'package:flutter/material.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/screens/configurations/clear_data_screen.dart';
import 'package:rkm/screens/configurations/import_sigtap_screen.dart';
import 'package:rkm/screens/configurations/main_procedures_screen.dart';
import 'package:rkm/screens/configurations/sync_data_screen.dart';
import 'package:rkm/widgets/button_default.dart';
import 'package:rkm/widgets/item_alert_settings.dart';
import 'package:rkm/widgets/text_default.dart';
class AlertDialogSettings {
@override
alert(BuildContext context) {
alert(BuildContext context, String username) {
return showDialog(
context: context,
builder: (context){
@@ -21,7 +25,7 @@ class AlertDialogSettings {
ItemAlertSettings(
onTap: (){
Navigator.pop(context);
Navigator.pushNamed(context, '/import_sigtap');
Navigator.push(context,MaterialPageRoute(builder: (context) => ImportSigtapScreen(username: username,)));
},
title: 'Importar SIGTAP',
body: 'Atulizar as informações do SIGTAP no aplicativo\n'
@@ -31,7 +35,7 @@ class AlertDialogSettings {
ItemAlertSettings(
onTap: (){
Navigator.pop(context);
Navigator.pushNamed(context, '/clear_data');
Navigator.push(context,MaterialPageRoute(builder:(context) => ClearDataScreen(username: username,)));
},
title: 'Limpar Dados',
body: 'Apaga todos os dados do Aplicativo.\n'
@@ -43,7 +47,7 @@ class AlertDialogSettings {
ItemAlertSettings(
onTap: (){
Navigator.pop(context);
Navigator.pushNamed(context, '/main_procedures');
Navigator.push(context,MaterialPageRoute(builder:(context) => MainProceduresScreen(username:username,)));
},
title: 'Definir Procedimentos Iniciais',
body: 'Define os Procedimentos iniciais que deverão ser\n'
@@ -62,10 +66,10 @@ class AlertDialogSettings {
ItemAlertSettings(
onTap: (){
Navigator.pop(context);
Navigator.pushNamed(context, '/sinc_data');
Navigator.push(context,MaterialPageRoute(builder:(context) => SyncDataScreen(username: username,)));
},
title: 'Sincronia de Envio',
body: 'Efetua a Sincronia de Envio levandoas informações\n'
body: 'Efetua a Sincronia de Envio levando as informações\n'
'do dispositivo para o ConectaSUS.',
icon: Icons.send
),

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:rkm/config/const_variable.dart';
import 'package:rkm/widgets/alert_dialog_settings.dart';
import '../screens/login/login_saved_screen.dart';
import '../config/color_palette.dart';
@@ -7,27 +8,24 @@ import 'icon_button_default.dart';
class AppBarDefault{
@override
PreferredSize appbar(BuildContext context,String title) {
PreferredSize appbar(BuildContext context,String title, String username) {
return PreferredSize(
preferredSize: Size.fromHeight(50),
child: AppBar(
title: Text(title),
title: Text(title,style: TextStyle(color: Colors.white),),
iconTheme: ConstVariable().iconThemeDataDefault,
centerTitle: true,
actions: [
IconButtonDefault(
icon: Icons.settings,
color: ColorPalette.white,
onPressed: ()=>AlertDialogSettings().alert(context)
onPressed: ()=>AlertDialogSettings().alert(context,username)
),
IconButtonDefault(
icon: Icons.logout,
color: ColorPalette.white,
onPressed: (){
Navigator.push(
context,
MaterialPageRoute(builder: (context) => LoginSavedScreen(listControl: [])),
);
}),
onPressed: ()=>Navigator.pushAndRemoveUntil(context,MaterialPageRoute(builder: (context) => LoginSavedScreen(listControl: [])),(Route<dynamic> route) => false)
),
],
),
);

View File

@@ -9,31 +9,36 @@ class CheckBoxSubtitle extends StatelessWidget {
bool checkbox;
var onChanged;
double fontSize;
var ontap;
CheckBoxSubtitle({
this.width = double.infinity,
required this.checkbox,
required this.subtitle,
required this.onChanged,
this.fontSize = 14
this.fontSize = 14,
this.ontap = null
});
@override
Widget build(BuildContext context) {
return Container(
width: width,
child: Row(
children: [
Checkbox(
value: checkbox,
onChanged: onChanged
),
Container(
width: width,
child: TextDefault(text: subtitle,fontSize: fontSize,color: ColorPalette.black54,)
),
],
return GestureDetector(
onTap: ontap,
child: Container(
width: width,
child: Row(
children: [
Checkbox(
value: checkbox,
onChanged: onChanged
),
Container(
width: width,
child: TextDefault(text: subtitle,fontSize: fontSize,color: ColorPalette.black54,maxLines: 2,)
),
],
),
),
);
}

View File

@@ -11,6 +11,8 @@ class CheckBoxTwoSubtitle extends StatelessWidget {
bool checkbox2;
var onChanged1;
var onChanged2;
var ontap1;
var ontap2;
CheckBoxTwoSubtitle({
this.width = double.infinity,
@@ -20,6 +22,8 @@ class CheckBoxTwoSubtitle extends StatelessWidget {
required this.subtitle2,
required this.onChanged1,
required this.onChanged2,
this.ontap1 = null,
this.ontap2 = null,
});
@override
@@ -33,18 +37,24 @@ class CheckBoxTwoSubtitle extends StatelessWidget {
value: checkbox1,
onChanged: onChanged1
),
Container(
width: width/2.5,
child: TextDefault(text: subtitle1,fontSize: 14,color: ColorPalette.black54,)
GestureDetector(
onTap: ontap1,
child: Container(
width: width/2.5,
child: TextDefault(text: subtitle1,fontSize: 14,color: ColorPalette.black54,)
),
),
Spacer(),
Checkbox(
value: checkbox2,
onChanged: onChanged2
),
Container(
width: width/3,
child: TextDefault(text: subtitle2,fontSize: 14,color: ColorPalette.black54)
GestureDetector(
onTap: ontap2,
child: Container(
width: width/3,
child: TextDefault(text: subtitle2,fontSize: 14,color: ColorPalette.black54)
),
),
],
),

View File

@@ -0,0 +1,65 @@
import 'package:flutter/material.dart';
import 'package:rkm/models/equipe_cidadao.dart';
import 'package:rkm/widgets/text_default.dart';
import '../config/color_palette.dart';
import '../config/const_variable.dart';
class DropDownButtonCidadao extends StatelessWidget {
var onChanged;
EquipeCidadao? select;
String title;
double fontSize;
List<EquipeCidadao> list;
double width;
double widthContainer;
DropDownButtonCidadao({
required this.onChanged,
required this.select,
required this.title,
required this.list,
required this.width,
this.fontSize = 15,
this.widthContainer = 300
});
@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
width: width*0.95,
margin: ConstVariable().marginHightInput,
color: ColorPalette.white,
child: DropdownButtonHideUnderline(
child: DropdownButton(
hint: Padding(
padding: const EdgeInsets.symmetric(horizontal: 0.0),
child: TextDefault(text: title,fontSize: ConstVariable().fontSizeInput,textAlign: TextAlign.end,color: Colors.black,),
),
value: select,
items: list.map((value) => DropdownMenuItem<EquipeCidadao>(
value: value,
child: Container(
width: widthContainer,
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 0.0),
child: TextDefault(
text: value.DESCRICAO,
maxLines: 2,
fontSize: fontSize,
color: Colors.black,
),
),
),
)
).toList(),
onChanged:onChanged
),
),
),
],
);
}
}

View File

@@ -0,0 +1,70 @@
import 'package:flutter/material.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart';
import 'package:rkm/widgets/text_default.dart';
import '../config/color_palette.dart';
import '../config/const_variable.dart';
import 'input_search_text.dart';
class DropDownButtonComPesquisa extends StatelessWidget {
var onChanged;
String? select;
String title;
double fontSize;
List list;
double width;
double heightDinamic;
double widthContainer;
DropDownButtonComPesquisa({
required this.onChanged,
required this.select,
required this.title,
required this.list,
required this.width,
this.heightDinamic = 0.2,
this.fontSize = 15,
this.widthContainer = 300,
});
@override
Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height;
return
Container(
width: width,
height: height*heightDinamic,
margin: ConstVariable().marginHightInput,
color: ColorPalette.white,
child: ListView(
shrinkWrap: true,
children: [
TypeAheadField(
controller: TextEditingController(),
hideOnEmpty: false,
suggestionsCallback: (pattern) {
if (list != null) {
// Use toList() para converter o resultado do where em uma lista
return list.where((value) => value.toLowerCase().contains(pattern.toLowerCase())).toList();
} else {
return Future.value([]); // Retorna uma lista vazia como um Future
}
},
emptyBuilder: (context) {
return ListTile(
title: Text('Nenhum resultado encontrado'),
);
},
itemBuilder: (context, dynamic suggestion) {
return ListTile(
title: Text(suggestion),
);
},
onSelected: onChanged,
),
],
),
);
}
}

View File

@@ -0,0 +1,78 @@
import 'package:flutter/material.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart';
import 'package:rkm/models/pais_modelo.dart';
import '../config/color_palette.dart';
import '../config/const_variable.dart';
class DropDownButtonComPesquisaPaises extends StatelessWidget {
var onChanged;
PaisModelo? select;
String title;
double fontSize;
List<PaisModelo> list;
double width;
double heightDinamic;
double widthContainer;
DropDownButtonComPesquisaPaises({
required this.onChanged,
required this.select,
required this.title,
required this.list,
required this.width,
this.heightDinamic = 0.2,
this.fontSize = 15,
this.widthContainer = 300,
});
@override
Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height;
return
Container(
width: width,
height: height*heightDinamic,
margin: ConstVariable().marginHightInput,
color: ColorPalette.white,
child: ListView(
shrinkWrap: true,
children: [
TypeAheadField(
controller: TextEditingController(),
suggestionsCallback: (pattern) {
if (list != null) {
return list.where((value) => value.PAIS.toLowerCase().contains(pattern.toLowerCase())).toList();
} else {
return Future.value([]);
}
},
emptyBuilder: (context) {
return ListTile(
title: Text('Nenhum resultado encontrado'),
);
},
itemBuilder: (context, suggestion) {
// Aqui, o tipo de 'suggestion' é dinâmico, pois a lista retornada
// por suggestionsCallback pode conter diferentes tipos de objetos.
// Você pode usar a notação de tipo dinâmico ou verificar o tipo do
// objeto e fazer o cast para 'PaisModelo' antes de usar.
if (suggestion is PaisModelo) {
// Faz o cast para 'PaisModelo' se necessário
final paisModelo = suggestion as PaisModelo;
return ListTile(
title: Text(paisModelo.PAIS),
);
}
// Se o objeto não for do tipo 'PaisModelo', retorne um widget vazio
return SizedBox.shrink();
},
onSelected: onChanged,
)
],
),
);
}
}

View File

@@ -20,7 +20,7 @@ class DropDownButtonDefault extends StatelessWidget {
required this.width,
this.fontSize = 15,
this.widthContainer = 300
});
});
@override
Widget build(BuildContext context) {

View File

@@ -0,0 +1,65 @@
import 'package:flutter/material.dart';
import 'package:rkm/widgets/text_default.dart';
import '../config/color_palette.dart';
import '../config/const_variable.dart';
import '../models/equipe_modelo.dart';
class DropDownEquipe extends StatelessWidget {
var onChanged;
EquipeModelo? select;
String title;
double fontSize;
List<EquipeModelo> list;
double width;
double widthContainer;
DropDownEquipe({
required this.onChanged,
required this.select,
required this.title,
required this.list,
required this.width,
this.fontSize = 15,
this.widthContainer = 300
});
@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
width: width*0.95,
margin: ConstVariable().marginHightInput,
color: ColorPalette.white,
child: DropdownButtonHideUnderline(
child: DropdownButton(
hint: Padding(
padding: const EdgeInsets.symmetric(horizontal: 0.0),
child: TextDefault(text: title,fontSize: ConstVariable().fontSizeInput,textAlign: TextAlign.end,color: Colors.black,),
),
value: select,
items: list.map((value) => DropdownMenuItem<EquipeModelo>(
value: value,
child: Container(
width: widthContainer,
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 0.0),
child: TextDefault(
text: 'INE: ${value.INE} / Área: ${value.AREA} ${value.MICROAREA==null?'':'- Microárea : ${value.MICROAREA}'}',
maxLines: 2,
fontSize: fontSize,
color: Colors.black,
),
),
),
)
).toList(),
onChanged:onChanged
),
),
),
],
);
}
}

View File

@@ -0,0 +1,87 @@
import 'package:flutter/material.dart';
import 'package:rkm/widgets/text_default.dart';
import '../config/color_palette.dart';
import '../config/const_variable.dart';
import '../models/drop_down_data_string_model.dart';
class DropDownEtniaIndigena extends StatelessWidget {
var onChanged;
DropDownDataStringModel? select;
String title;
double fontSize;
List<DropDownDataStringModel> list;
double width;
double widthContainer;
DropDownEtniaIndigena({
required this.onChanged,
required this.select,
required this.title,
required this.list,
required this.width,
this.fontSize = 15,
this.widthContainer = 300
});
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: width,
margin: EdgeInsets.symmetric(horizontal: 5),
padding: EdgeInsets.symmetric(horizontal: 2),
child: TextDefault(
textAlign: TextAlign.start,
text: title,
color: ColorPalette.black54,
fontSize: 12,
),
),
Container(
width: width*0.95,
alignment: Alignment.centerLeft,
margin: EdgeInsets.symmetric(horizontal: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(5),
border: Border.all(color: Colors.white)
),
padding: EdgeInsets.symmetric(horizontal: 5),
child: DropdownButtonHideUnderline(
child: DropdownButton(
dropdownColor: Colors.white,
hint: Padding(
padding: const EdgeInsets.symmetric(horizontal: 0.0),
child: TextDefault(text: '-SELECIONE-',fontSize: ConstVariable().fontSizeInput,textAlign: TextAlign.end,color: Colors.black,),
),
value: select,
items: list.map((value) => DropdownMenuItem<DropDownDataStringModel>(
value: value,
child: Container(
alignment: Alignment.centerLeft,
color: Colors.white,
height: 50,
width: width*0.88,
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 0.0),
child: TextDefault(
text: value.title,
maxLines: 2,
fontSize: fontSize,
color: Colors.black,
),
),
),
)
).toList(),
onChanged:onChanged
),
),
),
],
);
}
}

View File

@@ -0,0 +1,81 @@
import 'package:flutter/material.dart';
import 'package:rkm/models/equipe_cidadao.dart';
import 'package:rkm/widgets/dropdown_button_cidadao.dart';
import 'package:rkm/widgets/text_default.dart';
import '../config/color_palette.dart';
import 'dropdown_button_default.dart';
class DropdownWithSubtitleCidadao extends StatelessWidget {
String subtitle;
String hintDropdown;
EquipeCidadao? select;
double widthSubtitle;
double widthDropdown;
double widthContainerDropdown;
List<EquipeCidadao> list;
var onChanged;
var onTapDelete;
bool showDelete;
Color colorBorder;
DropdownWithSubtitleCidadao({
required this.subtitle,
required this.select,
required this.widthDropdown,
required this.widthContainerDropdown,
required this.widthSubtitle,
required this.hintDropdown,
required this.onChanged,
required this.list,
this.colorBorder = ColorPalette.white,
this.onTapDelete = null,
this.showDelete = false
});
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.symmetric(horizontal: 10),
padding: const EdgeInsets.symmetric(vertical: 5.0),
child: Column(
children: [
Container(
width: widthDropdown,
child: TextDefault(
textAlign: TextAlign.start,
text: subtitle,
color: ColorPalette.black54,
fontSize: 12,
),
),
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(5),
border: Border.all(color: colorBorder)
),
margin: EdgeInsets.symmetric(horizontal: 5),
padding: EdgeInsets.symmetric(horizontal: 2),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
DropDownButtonCidadao(
title: hintDropdown,
fontSize: 14,
width: widthDropdown,
widthContainer: widthContainerDropdown,
select: select,
list: list,
onChanged: onChanged,
),
select!=null &&showDelete?GestureDetector(
onTap: onTapDelete,
child: Icon(Icons.delete,color: ColorPalette.appBar,)
):Container(width: 23,)
],
),
),
],
),
);
}
}

View File

@@ -40,9 +40,9 @@ class InputSearchText extends StatelessWidget {
fillColor: ColorPalette.appBar,
prefixIcon: Icon(Icons.search),
border: border?OutlineInputBorder():null,
// hintText: this.hint,
hintText: this.hint,
hintStyle: TextStyle(
color: Colors.black,
color: Colors.black87,
fontSize: this.fontSizeHint,
)
)

View File

@@ -1,7 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:rkm/config/color_palette.dart';
import 'package:rkm/widgets/text_default.dart';
import '../controllers/format_txt.dart';
class InputText extends StatelessWidget {
@@ -15,6 +14,8 @@ class InputText extends StatelessWidget {
int maxLines;
Color colorBorder;
var onChanged;
int maxLength;
List<TextInputFormatter> inputFormatters;
InputText({
required this.controller,
@@ -27,21 +28,22 @@ class InputText extends StatelessWidget {
this.maxLines = 1,
this.colorBorder = ColorPalette.black54,
this.onChanged = null,
});
this.maxLength = 200,
List<TextInputFormatter>? inputFormatters, // Alteração aqui
}) : inputFormatters = inputFormatters ?? [FormatText()];
@override
Widget build(BuildContext context) {
return Container(
color: enabled?ColorPalette.white:ColorPalette.disable,
color: enabled?Colors.grey[200]:ColorPalette.disable,
width: width,
margin: EdgeInsets.only(bottom: 5),
child: TextFormField(
keyboardType: textInputType,
maxLines: maxLines,
onChanged: onChanged,
inputFormatters: [
FormatText()
],
maxLength: maxLength,
inputFormatters: inputFormatters,
obscureText: this.obscure,
controller: this.controller,
style: TextStyle(

View File

@@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:rkm/widgets/title_input.dart';
import '../config/color_palette.dart';
import '../controllers/format_txt.dart';
import 'error_default.dart';
import 'input_text.dart';
@@ -12,7 +14,7 @@ class InputWithSubtitle extends StatelessWidget {
double widthSubtitle;
double widthInput;
double widthError;
var controller;
TextEditingController controller;
var onChanged;
bool enabled;
bool mandatory;
@@ -20,6 +22,8 @@ class InputWithSubtitle extends StatelessWidget {
int maxLines;
Color colorBorder;
String typeInput;
int maxLength;
List<TextInputFormatter> inputFormatters;
InputWithSubtitle({
required this.subtitle,
@@ -36,24 +40,19 @@ class InputWithSubtitle extends StatelessWidget {
this.maxLines = 1,
this.colorBorder = ColorPalette.white,
required this.onChanged,
this.widthError = 0.7
});
this.widthError = 0.7,
this.maxLength = 200,
List<TextInputFormatter>? inputFormatters, // Alteração aqui
}) : inputFormatters = inputFormatters ?? [FormatText()];
@override
Widget build(BuildContext context) {
List splited = controller.text.trim().split(' ');
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Container(
// width: widthSubtitle,
// padding: const EdgeInsets.symmetric(horizontal: 8.0,vertical: 3),
// child: TextDefault(
// text: subtitle,
// color: ColorPalette.black54,
// fontSize: 18,
// fontWeigth: FontWeight.bold,
// ),
// ),
TitleInput(title:labelInput),
InputText(
controller: controller,
@@ -64,8 +63,10 @@ class InputWithSubtitle extends StatelessWidget {
maxLines:maxLines,
colorBorder: colorBorder,
onChanged: onChanged,
maxLength: maxLength,
inputFormatters: inputFormatters,
),
typeInput=='normal'&& controller.text=='' &&(enabled&&mandatory)?ErrorDefault(widthDefault: widthError,error: errorInput,):Container(),
typeInput=='normal'&&(enabled&&mandatory) && (labelInput=='Nome' && splited.length<=1) ?ErrorDefault(widthDefault: widthError,error: errorInput,):Container(),
typeInput!='normal'&&(enabled&&mandatory)&& errorInput!=''?ErrorDefault(widthDefault: widthError,error: errorInput,):Container(),
Divider(color: ColorPalette.black54,height: 5,endIndent: 10,)
],

View File

@@ -13,6 +13,8 @@ class ItemCitizen extends StatelessWidget {
String numberCNS;
String numberMedicalRecord;
var onTap;
String username;
var dataPatient;
ItemCitizen({
required this.name,
@@ -21,6 +23,8 @@ class ItemCitizen extends StatelessWidget {
required this.numberCNS,
required this.numberMedicalRecord,
required this.onTap,
required this.username,
required this.dataPatient
});
@override
@@ -35,7 +39,7 @@ class ItemCitizen extends StatelessWidget {
subtitle: TextDefault(text: '$numberCNS - $numberMedicalRecord - $date - $mother',fontSize: 13,color: Colors.black54),
trailing: IconButton(
icon: Icon(LineIcons.clipboard,size: 35,),
onPressed: ()=>AlertDialogDefault().alertSelect(context,name),
onPressed: ()=>AlertDialogDefault().alertSelect(context,name,username,dataPatient),
),
onTap: onTap,
),

View File

@@ -1,10 +1,11 @@
import 'package:flutter/material.dart';
import 'package:rkm/screens/home_screen.dart';
import 'package:rkm/widgets/text_default.dart';
import '../config/color_palette.dart';
import 'button_default.dart';
class OnBackButton{
onBackButton(context)async {
onBackButton(context,String username)async {
await showDialog(
context: context,
builder: (context){
@@ -13,7 +14,7 @@ class OnBackButton{
content: TextDefault(text: 'Deseja sair e descartar as alterações?',color: ColorPalette.black54,),
actions: [
ButtonDefault(
onPressed: ()=>Navigator.pushNamedAndRemoveUntil(context, '/home', (route) => false),
onPressed: ()=>Navigator.pushAndRemoveUntil(context,MaterialPageRoute(builder:(context)=> HomeScreen(username: username,)), (route) => false),
title: 'Sim',
background: ColorPalette.appBar,
borderColor: ColorPalette.appBar,

View File

@@ -0,0 +1,32 @@
import 'package:flutter/material.dart';
import '../config/const_variable.dart';
class ScreenDev extends StatefulWidget {
const ScreenDev({super.key});
@override
State<ScreenDev> createState() => _ScreenDevState();
}
class _ScreenDevState extends State<ScreenDev> {
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
return Container(
alignment: Alignment.center,
width: width,
height: height,
decoration: ConstVariable().backgroundGradient,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Image.asset('assets/images/logo.PNG',width: width*0.4),
Text('Tela em desenvolvimento...')
],
),
);
}
}

Some files were not shown because too many files have changed in this diff Show More