Compare commits
18 Commits
0cfe4e747b
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4d60d86743 | ||
|
|
1d3d3941b3 | ||
|
|
7dca9d9b4e | ||
|
|
74b5acdb45 | ||
|
|
763d101162 | ||
|
|
9e63828175 | ||
|
|
0ef16f6119 | ||
|
|
22e8ae8fd3 | ||
|
|
ce2a1cf4d1 | ||
|
|
48a5a779bf | ||
|
|
612eb9da02 | ||
|
|
9bdc574b55 | ||
|
|
5b2919d292 | ||
|
|
da45452c89 | ||
|
|
6c770ef81c | ||
|
|
58fcb66022 | ||
|
|
f5abac7a70 | ||
|
|
e45e70f1e4 |
34
.metadata
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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.
|
||||
|
||||
|
Before Width: | Height: | Size: 81 KiB |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_launcher_background">#E3E6E8</color>
|
||||
</resources>
|
||||
@@ -1,17 +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="RKMAB 2.0 ConectaSUS"
|
||||
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"
|
||||
android:enableOnBackInvokedCallback="true"
|
||||
>
|
||||
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"
|
||||
@@ -35,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>
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.ab.rkm.rkmmobile
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
class MainActivity: FlutterActivity()
|
||||
@@ -2,5 +2,4 @@ package com.ab.rkm.rkm
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
class MainActivity: FlutterActivity() {
|
||||
}
|
||||
class MainActivity: FlutterActivity()
|
||||
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 544 B |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 442 B |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 721 B |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 1.4 KiB |
@@ -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.
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError
|
||||
org.gradle.jvmargs=-Xmx1536M
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
android.suppressUnsupportedCompileSdk=33
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
12
ios/RunnerTests/RunnerTests.swift
Normal 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.
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
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';
|
||||
|
||||
@@ -11,10 +13,7 @@ class ConstVariable{
|
||||
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 = [
|
||||
'ATEND. INDIVIDUAL',
|
||||
'VISTA DOMICILIAR'
|
||||
@@ -74,35 +73,36 @@ 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 = [
|
||||
@@ -127,34 +127,57 @@ class ConstVariable{
|
||||
'USO DE COLOSTOMIA',
|
||||
'USO DE GASTROSTOMIA',
|
||||
'USO DE SONDA NASOENTERAL - SNE',
|
||||
'USO DE SONDA NASOGRÁSTRICA - SNG',
|
||||
'USO DE SONDA NASOGÁSTRICA - SNG',
|
||||
'USO DE SONDA VESICAL DE DEMORA - SVD',
|
||||
'USO DE TRAQUEOSTOMIA',
|
||||
];
|
||||
|
||||
List serviceHomeCheckProclist = [
|
||||
'ACOMP.DE PACIENTE EM REABILITAÇÃO EM COMUNICAÇÃO ALTERNATIVA',
|
||||
'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',
|
||||
'ATEND. MÉDICO COM FINALIDADE DE ATESTAR ÓBITO',
|
||||
'TERAPIA DE REIDRATAÇÃO ORAL',
|
||||
'ATEND./ACOMP.EM REABILITAÇÃO NAS MÚLTIPLAS DEFICIÊNCIAS',
|
||||
'TERAPIA DE REIDRATAÇÃO PARENTERAL',
|
||||
'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 ESPECIFICADA/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 = [
|
||||
@@ -263,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'),
|
||||
];
|
||||
|
||||
@@ -500,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),
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -1,9 +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){
|
||||
@@ -13,10 +17,11 @@ class PostHttpOverrides extends HttpOverrides{
|
||||
}
|
||||
|
||||
void main() {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
||||
HttpOverrides.global = new PostHttpOverrides();
|
||||
runApp(const MyApp());
|
||||
}
|
||||
//Cadastro e edição do Cadastro do Cidadão, Cadastro Individual, Cadastro Domiciliar e Visita Domiciliar
|
||||
class MyApp extends StatelessWidget {
|
||||
const MyApp({super.key});
|
||||
|
||||
@@ -31,7 +36,7 @@ class MyApp extends StatelessWidget {
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
],
|
||||
supportedLocales: [
|
||||
const Locale('pt', 'BR'), // Adicione os locales que você precisa
|
||||
const Locale('pt', 'BR'),
|
||||
],
|
||||
theme: ThemeData(
|
||||
primaryColor: ColorPalette.primary,
|
||||
|
||||
@@ -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
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
11
lib/models/check_proced_sia_model.dart
Normal 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,
|
||||
});
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
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 {
|
||||
String username;
|
||||
@@ -17,20 +22,27 @@ class AttendanceListScreen extends StatefulWidget {
|
||||
|
||||
class _AttendanceListScreenState extends State<AttendanceListScreen> {
|
||||
|
||||
List visitHome = [];
|
||||
List citizenUpdate = [];
|
||||
List serviceHome = [];
|
||||
List atendimentoDomiciliarLista = [];
|
||||
List visitaDomiciliarLista = [];
|
||||
List cadastroCidadaoLista = [];
|
||||
List cadastrosIndividuais = [];
|
||||
|
||||
getData()async{
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
visitHome = await db.query('VISITAS_DOMICILIARES_PROC');
|
||||
citizenUpdate = await db.query('CIDADAOS WHERE SINCRONIZADO = "N"');
|
||||
serviceHome =await db.query('ATENDS_DOM_PROC');
|
||||
print(await db.query('ATENDS_DOM_PROC'));
|
||||
// print(await db.query('VISITAS_DOMICILIARES_PROC'));
|
||||
// print(await db.query('CIDADAOS WHERE SINCRONIZADO = "N"'));
|
||||
print(citizenUpdate.length);
|
||||
// List list = await db.rawQuery('SELECT * FROM CIDADAOS WHERE CNS = $CNS');
|
||||
// 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(() {});
|
||||
}
|
||||
|
||||
@@ -42,57 +54,384 @@ class _AttendanceListScreenState extends State<AttendanceListScreen> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
double altura = MediaQuery.of(context).size.height;
|
||||
|
||||
return Scaffold(
|
||||
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: ${serviceHome.length} | Visitas Domiciliares: ${visitHome.length}',
|
||||
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,
|
||||
// ),
|
||||
TextDefault(
|
||||
text: 'Cadastros Cidadãos Realizados / Atualizados : ${citizenUpdate.length}',
|
||||
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(),
|
||||
],
|
||||
));
|
||||
},
|
||||
),
|
||||
),
|
||||
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(),
|
||||
],
|
||||
));
|
||||
},
|
||||
),
|
||||
),
|
||||
// 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: ${visitHome.length}',
|
||||
// fontWeigth: FontWeight.bold,
|
||||
// color: ColorPalette.black54,
|
||||
// fontSize: 18,
|
||||
// ),
|
||||
],
|
||||
)
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -65,14 +65,25 @@ class _SyncDataScreenState extends State<SyncDataScreen> {
|
||||
});
|
||||
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;
|
||||
@@ -242,6 +253,9 @@ class _SyncDataScreenState extends State<SyncDataScreen> {
|
||||
// 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(() {
|
||||
|
||||
@@ -2,13 +2,15 @@ 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 {
|
||||
@@ -24,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(
|
||||
@@ -48,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) {
|
||||
|
||||
@@ -137,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,),
|
||||
)
|
||||
],
|
||||
),
|
||||
@@ -159,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,
|
||||
),
|
||||
@@ -188,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!;
|
||||
@@ -218,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!;
|
||||
});
|
||||
},
|
||||
),
|
||||
|
||||
@@ -30,7 +30,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
loadCitizen()async{
|
||||
await DbSqliteLoad().intialDB().then((db)async {
|
||||
dataCitizen = await db.query('CIDADAOS ORDER BY NOME_CIDADAO');
|
||||
print(dataCitizen.length);
|
||||
// print(dataCitizen.length);
|
||||
// print(await db.rawQuery("SELECT * FROM CIDADAOS"));
|
||||
});
|
||||
searchCitizen();
|
||||
@@ -38,6 +38,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
}
|
||||
|
||||
searchCitizen()async{
|
||||
|
||||
if(inputSearch.text.isNotEmpty){
|
||||
showResults =[];
|
||||
for (int i =0;dataCitizen.length>i;i++) {
|
||||
@@ -57,6 +58,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
){
|
||||
if(showResults.length<10){
|
||||
showResults.add(dataCitizen[i]);
|
||||
// print(dataCitizen[i]['ORIGEM']);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -64,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']);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -150,7 +155,7 @@ class _HomeScreenState extends State<HomeScreen> {
|
||||
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']);
|
||||
// print(showResults[index]['CD_USUARIO_SUS']);
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder:(context) => RegisterCitizenScreen(listData: list,username: widget.username,)),
|
||||
|
||||
@@ -50,293 +50,308 @@ class _LoadInitScreenState extends State<LoadInitScreen> {
|
||||
initLoading()async{
|
||||
await ApiDataLoad().loadPerm(urlAPI,mode,nameCityApi,username).then((response)async{
|
||||
print(response);
|
||||
if(response['status'] == 0){
|
||||
AlertDialogDefault().alert(context, 'Erro', 'Permissão negada', 'Voltar');
|
||||
} else if(response['status'] == 1 && response['load_perm'] == "S") {
|
||||
|
||||
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";
|
||||
});
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'ID_UNIDADE': list[i]['idUnidade'],
|
||||
'NOME_UNIDADE': list[i]['nomeFantasia'],
|
||||
'CNES_UNIDADE': list[i]['nrCNES']
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.1;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveUnidadesDB(rows).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";
|
||||
});
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'COD_PROC_SIGTAP' : list[i]['codProcedimento'],
|
||||
'DESC_PROC_SIGTAP' : list[i]['nome'],
|
||||
'GRUPO_PROC_SIGTAP' : list[i]['codGrupo'],
|
||||
'QTDE_MAXIMA' : list[i]['qtdeMax'],
|
||||
'IDADE_MIN' : list[i]['idadeMin'],
|
||||
'IDADE_MAX' : list[i]['idadeMax'],
|
||||
'SEXO' : list[i]['sexo'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.2;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveProceduresDB(rows).then((value)async{
|
||||
print('finalizou save Procedures');
|
||||
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";
|
||||
});
|
||||
print('finalizou saveProceduresRegisterDB');
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'COD_PROC_SIGTAP' : list[i]['codProcedimento'],
|
||||
'CODIGO_REGISTRO' : list[i]['codRegistro'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.3;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveProceduresRegisterDB(rows).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";
|
||||
});
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'CODIGO_CID' : list[i]['codCID'],
|
||||
'DESCRICAO_CID' : list[i]['descCID'],
|
||||
'RESTRICAO_SEXO' : list[i]['restSexo'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.4;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveCID(rows).then((value)async{
|
||||
print('finalizou saveCID');
|
||||
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";
|
||||
});
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'COD_PROC_SIGTAP' : list[i]['codProcedimento'],
|
||||
'CODIGO_CID' : list[i]['codCID'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.5;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveProceduresCID(rows).then((value)async{
|
||||
print('finalizou saveProceduresCID');
|
||||
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";
|
||||
});
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'CODIGO_CBO' : list[i]['codCBO'],
|
||||
'DESCRICAO_CBO' : list[i]['descCBO'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.6;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveCBO(rows).then((value)async{
|
||||
print('finalizou saveCBO');
|
||||
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";
|
||||
});
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'COD_PROC_SIGTAP' : value[i]['codProcedimento'],
|
||||
'CODIGO_CBO' : value[i]['codCBO'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.7;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveProceduresCBO(rows).then((value)async{
|
||||
print('finalizou saveProceduresCBO');
|
||||
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";
|
||||
});
|
||||
for(int i=0;list.length > i;i++){
|
||||
Map<String, dynamic> row = {
|
||||
'CODIGO_CIAP' : list[i]['codCIAP'],
|
||||
'DESC_CIAP' : list[i]['descCIAP'],
|
||||
'TIPO_CIAP' : list[i]['tipoCIAP'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.8;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveCIAP(rows).then((value)async{
|
||||
print('finalizou saveCIAP');
|
||||
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";
|
||||
});
|
||||
for(int i=0;list.length > i;i++){
|
||||
Map<String, dynamic> row = {
|
||||
'ID_MUNICIPIO' : list[i]['idMunicipio'],
|
||||
'CODIGO_IBGE' : list[i]['codIBGE'],
|
||||
'NO_MUNICIPIO' : list[i]['nomeMunicipio'],
|
||||
'UF_ESTADO' : list[i]['UF'],
|
||||
'ID_PAIS' : list[i]['idPais'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.9;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveCity(rows).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";
|
||||
});
|
||||
for(int i=0;list.length > i;i++){
|
||||
Map<String, dynamic> row = {
|
||||
'ID_EQUIPE' : list[i]['idEquipe'],
|
||||
'ID_UNIDADE' : list[i]['idUnidade'],
|
||||
'INE' : list[i]['INE'],
|
||||
'ID_ATB_AREA' : list[i]['idAtbArea'],
|
||||
'AREA' : list[i]['area'],
|
||||
'ID_ATB_MICROAREA': list[i]['idAtbMicroarea'],
|
||||
'MICROAREA' : list[i]['microarea'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.92;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveTeam(rows).then((value)async{
|
||||
countProg = 0.95;
|
||||
setState(() {});
|
||||
print('finalizou saveTeam');
|
||||
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";
|
||||
});
|
||||
for(int i=0;list.length > i;i++){
|
||||
Map<String, dynamic> row = {
|
||||
'ID_EQUIPE' : list[i]['idEquipe'],
|
||||
'ID_PROFISSIONAL' : list[i]['idProfissional'],
|
||||
'ATIVO' : list[i]['ativo'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.97;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveTeamComponents(rows).then((value)async{
|
||||
print('finalizou saveTeamComponents');
|
||||
setState(() {
|
||||
countProg = 1;
|
||||
finish = true;
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Profissionais Equipes não carregadas, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Equipes não carregadas, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Municípios não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'CIAPs não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Procedimentos CBOs não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'CBOs não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Procedimentos CIDs não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'CIDs não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Procedimentos Registros não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Procedimentos não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Unidades não carregadas, tente novamente!', 'Voltar');
|
||||
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 2 de 12 - Gravando as Unidades no Aplicativo";
|
||||
});
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'ID_UNIDADE': list[i]['idUnidade'],
|
||||
'NOME_UNIDADE': list[i]['nomeFantasia'],
|
||||
'CNES_UNIDADE': list[i]['nrCNES']
|
||||
};
|
||||
rows.add(row);
|
||||
// countProg = 0.1;
|
||||
// setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveUnidadesDB(rows).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 3 de 12 - Gravando os Procedimentos no Aplicativo";
|
||||
});
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'COD_PROC_SIGTAP' : list[i]['codProcedimento'],
|
||||
'DESC_PROC_SIGTAP' : list[i]['nome'],
|
||||
'GRUPO_PROC_SIGTAP' : list[i]['codGrupo'],
|
||||
'QTDE_MAXIMA' : list[i]['qtdeMax'],
|
||||
'IDADE_MIN' : list[i]['idadeMin'],
|
||||
'IDADE_MAX' : list[i]['idadeMax'],
|
||||
'SEXO' : list[i]['sexo'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.2;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveProceduresDB(rows).then((value)async{
|
||||
print('finalizou save Procedures');
|
||||
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 4 de 12 - Gravando os Procedimentos Registros no Aplicativo";
|
||||
});
|
||||
print('finalizou saveProceduresRegisterDB');
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'COD_PROC_SIGTAP' : list[i]['codProcedimento'],
|
||||
'CODIGO_REGISTRO' : list[i]['codRegistro'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.3;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveProceduresRegisterDB(rows).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 5 de 12 - Gravando os CIDs no Aplicativo";
|
||||
});
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'CODIGO_CID' : list[i]['codCID'],
|
||||
'DESCRICAO_CID' : list[i]['descCID'],
|
||||
'RESTRICAO_SEXO' : list[i]['restSexo'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.4;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveCID(rows).then((value)async{
|
||||
print('finalizou saveCID');
|
||||
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 6 de 12 - Gravando os Procedimentos CIDs no Aplicativo";
|
||||
});
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'COD_PROC_SIGTAP' : list[i]['codProcedimento'],
|
||||
'CODIGO_CID' : list[i]['codCID'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.5;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveProceduresCID(rows).then((value)async{
|
||||
print('finalizou saveProceduresCID');
|
||||
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 8 de 12 - Gravando os CBOs no Aplicativo";
|
||||
});
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'CODIGO_CBO' : list[i]['codCBO'],
|
||||
'DESCRICAO_CBO' : list[i]['descCBO'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.6;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveCBO(rows).then((value)async{
|
||||
print('finalizou saveCBO');
|
||||
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 8 de 12 - Gravando os Procedimentos CBO no Aplicativo";
|
||||
});
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
Map<String, dynamic> row = {
|
||||
'COD_PROC_SIGTAP' : value[i]['codProcedimento'],
|
||||
'CODIGO_CBO' : value[i]['codCBO'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.7;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveProceduresCBO(rows).then((value)async{
|
||||
print('finalizou saveProceduresCBO');
|
||||
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 9 de 12 - Gravando os CIAPs no Aplicativo";
|
||||
});
|
||||
for(int i=0;list.length > i;i++){
|
||||
Map<String, dynamic> row = {
|
||||
'CODIGO_CIAP' : list[i]['codCIAP'],
|
||||
'DESC_CIAP' : list[i]['descCIAP'],
|
||||
'TIPO_CIAP' : list[i]['tipoCIAP'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.8;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveCIAP(rows).then((value)async{
|
||||
print('finalizou saveCIAP');
|
||||
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 10 de 12 - Gravando os Municípios no Aplicativo";
|
||||
});
|
||||
for(int i=0;list.length > i;i++){
|
||||
Map<String, dynamic> row = {
|
||||
'ID_MUNICIPIO' : list[i]['idMunicipio'],
|
||||
'CODIGO_IBGE' : list[i]['codIBGE'],
|
||||
'NO_MUNICIPIO' : list[i]['nomeMunicipio'],
|
||||
'UF_ESTADO' : list[i]['UF'],
|
||||
'ID_PAIS' : list[i]['idPais'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.9;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveCity(rows).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 11 de 12 - Gravando as Equipes no Aplicativo";
|
||||
});
|
||||
for(int i=0;list.length > i;i++){
|
||||
Map<String, dynamic> row = {
|
||||
'ID_EQUIPE' : list[i]['idEquipe'],
|
||||
'ID_UNIDADE' : list[i]['idUnidade'],
|
||||
'INE' : list[i]['INE'],
|
||||
'ID_ATB_AREA' : list[i]['idAtbArea'],
|
||||
'AREA' : list[i]['area'],
|
||||
'ID_ATB_MICROAREA': list[i]['idAtbMicroarea'],
|
||||
'MICROAREA' : list[i]['microarea'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.92;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveTeam(rows).then((value)async{
|
||||
countProg = 0.95;
|
||||
setState(() {});
|
||||
print('finalizou saveTeam');
|
||||
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 12 de 12 - Gravando os Profissionais das Equipes no Aplicativo";
|
||||
});
|
||||
for(int i=0;list.length > i;i++){
|
||||
Map<String, dynamic> row = {
|
||||
'ID_EQUIPE' : list[i]['idEquipe'],
|
||||
'ID_PROFISSIONAL' : list[i]['idProfissional'],
|
||||
'ATIVO' : list[i]['ativo'],
|
||||
};
|
||||
rows.add(row);
|
||||
countProg = 0.97;
|
||||
setState(() {});
|
||||
}
|
||||
await DbSqliteLoad().saveTeamComponents(rows).then((value)async{
|
||||
print('finalizou saveTeamComponents');
|
||||
setState(() {
|
||||
countProg = 1;
|
||||
finish = true;
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Profissionais Equipes não carregadas, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Equipes não carregadas, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Municípios não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'CIAPs não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Procedimentos CBOs não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'CBOs não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Procedimentos CIDs não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'CIDs não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Procedimentos Registros não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Procedimentos não carregados, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
AlertDialogDefault().alert(context, 'Error', 'Unidades não carregadas, tente novamente!', 'Voltar');
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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';
|
||||
@@ -39,6 +40,7 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
||||
String codState = '';
|
||||
String passwordDB = '';
|
||||
String userDB = '';
|
||||
String competencia = '';
|
||||
|
||||
recupDB()async{
|
||||
await DbSqliteLoad().intialDB().then((db)async{
|
||||
@@ -53,6 +55,11 @@ class _LoginSavedScreenState extends State<LoginSavedScreen> {
|
||||
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(() {});
|
||||
}
|
||||
|
||||
@@ -135,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(
|
||||
@@ -181,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,
|
||||
@@ -192,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,
|
||||
|
||||
@@ -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';
|
||||
@@ -68,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{
|
||||
@@ -151,7 +139,11 @@ 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!=''){
|
||||
@@ -244,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(
|
||||
@@ -266,7 +261,10 @@ class _SyncLoginScreenState extends State<SyncLoginScreen> {
|
||||
validatorDropDown = true;
|
||||
selectTeam = null;
|
||||
});
|
||||
getTeam();
|
||||
_prefService.removeUnidade().then((onValue){
|
||||
print('remove unidade');
|
||||
getTeam();
|
||||
});
|
||||
},
|
||||
),
|
||||
TitleInput(title:'Equipe'),
|
||||
@@ -278,7 +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());
|
||||
});
|
||||
},
|
||||
),
|
||||
|
||||
@@ -2,12 +2,13 @@ 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.dart';
|
||||
import 'package:rkm/widgets/dropdown_button_com_pesquisa_paises.dart';
|
||||
import 'package:rkm/widgets/title_containers.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
@@ -17,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';
|
||||
@@ -87,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;
|
||||
@@ -107,6 +111,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
String? selectMaritalStatus;
|
||||
int? selectMaritalStatusCod;
|
||||
String? selectBreed;
|
||||
DropDownDataStringModel? selectEtniaIndigena;
|
||||
int? selectBreedCod;
|
||||
String? selectScooling;
|
||||
int? selectScoolingCod;
|
||||
@@ -145,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;
|
||||
@@ -189,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().then((listUnidade)async{
|
||||
idUnidade =listUnidade[0];
|
||||
idUnidade =listUnidade[0].toString();
|
||||
});
|
||||
setState(() {
|
||||
unitController.text = listControl[0]['NOME_UNIDADE'];
|
||||
@@ -206,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);
|
||||
}
|
||||
|
||||
@@ -228,7 +254,6 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
villageDB.add(widget.listData[0]['NO_BAIRRO_LOGR']);
|
||||
}
|
||||
}
|
||||
// print(villageDB);
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
@@ -239,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);
|
||||
|
||||
@@ -338,14 +359,20 @@ 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');
|
||||
}
|
||||
|
||||
@@ -360,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||
|
||||
@@ -387,10 +414,8 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//sdsafdsf
|
||||
saveCitizen()async{
|
||||
print('NISController.text');
|
||||
print(NISController.text);
|
||||
Map<String, dynamic> row = {
|
||||
'ID_CIDADAO' : idCidadao,
|
||||
'CD_USUARIO_SUS' : codSus,
|
||||
@@ -405,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,
|
||||
@@ -425,8 +451,8 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
'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 && numberController.text!='N/A'?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,
|
||||
@@ -439,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,
|
||||
@@ -466,7 +492,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
'DT_OBITO' : dateDeathDB,
|
||||
'DECLARACAO_OBITO' : '',
|
||||
'BLOQUEIO' : enableBlocked?1:0,
|
||||
'ORIGEM' : 'A',
|
||||
'ORIGEM' : editing?'A':'C',
|
||||
'DT_HORA_CADASTRO' : DateTime.now().toString(),
|
||||
'SINCRONIZADO' : 'N',
|
||||
};
|
||||
@@ -495,6 +521,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
'OK'
|
||||
);
|
||||
setState(() {
|
||||
edit = true;
|
||||
showTab = true;
|
||||
});
|
||||
// print(value);
|
||||
@@ -520,8 +547,6 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
}
|
||||
|
||||
getData()async{
|
||||
// print('passou');
|
||||
// print(widget.listData[0]['ID_USUARIO_CADASTRO']);
|
||||
idCidadao = widget.listData[0]['ID_CIDADAO'];
|
||||
codSus = widget.listData[0]['CD_USUARIO_SUS'];
|
||||
nameController.text = widget.listData[0]['NOME_CIDADAO'];
|
||||
@@ -537,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';
|
||||
@@ -557,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;
|
||||
@@ -594,12 +634,16 @@ 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();
|
||||
|
||||
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);
|
||||
// print(selectCountry!.ID_PAIS_RESID);
|
||||
// print(selectCountry!.PAIS);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -616,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);
|
||||
@@ -641,15 +685,16 @@ 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']==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();
|
||||
selectRGUF = widget.listData[0]['RG_UF']??'';
|
||||
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;
|
||||
|
||||
if(widget.listData[0]['TIPO_CERTIDAO'] is int){
|
||||
selectTypeCertificateCod = widget.listData[0]['TIPO_CERTIDAO'];
|
||||
}else{
|
||||
@@ -659,9 +704,10 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
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']??'';
|
||||
@@ -683,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
|
||||
@@ -708,7 +759,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
double width = MediaQuery.of(context).size.width;
|
||||
|
||||
return WillPopScope(
|
||||
onWillPop: () async => await OnBackButton().onBackButton(context, widget.username),
|
||||
onWillPop:edit?null: () async => await OnBackButton().onBackButton(context, widget.username),
|
||||
child: Scaffold(
|
||||
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Cidadão',widget.username),
|
||||
body: Container(
|
||||
@@ -773,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(
|
||||
@@ -881,6 +932,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
});
|
||||
},
|
||||
),
|
||||
|
||||
InputWithSubtitle(
|
||||
controller: spouseController,
|
||||
subtitle: 'Cônjuge',
|
||||
@@ -892,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',
|
||||
@@ -910,7 +963,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
}else{
|
||||
selectNaturalityCod = 3;
|
||||
}
|
||||
cityBirthController.text = 'MUNICIPIO IGNORADO - SP';
|
||||
cityBirthController.text = 'MUNICIPIO IGNORADO';
|
||||
}else{
|
||||
cityBirthController.text = '';
|
||||
selectNaturalityCod = 1;
|
||||
@@ -967,7 +1020,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
],
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: cityBirthController.text == 'MUNICIPIO IGNORADO - SP' || edit?null:(){
|
||||
onTap: cityBirthController.text == 'MUNICIPIO IGNORADO' || edit?null:(){
|
||||
searchCityController.text = '';
|
||||
searchCityBirthController.text = '';
|
||||
searchCity('birth');
|
||||
@@ -1065,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);
|
||||
}
|
||||
}
|
||||
@@ -1072,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',
|
||||
@@ -1125,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',
|
||||
@@ -1150,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',
|
||||
@@ -1302,17 +1372,17 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
DropdownWithSubtitle(
|
||||
subtitle: 'Pais de Residência',
|
||||
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();
|
||||
@@ -1340,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');
|
||||
@@ -1477,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,
|
||||
@@ -1496,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,
|
||||
@@ -1528,7 +1614,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
setState(() {
|
||||
checkBoxNumber = value!;
|
||||
if(checkBoxNumber){
|
||||
numberController.text = 'N/A';
|
||||
numberController.text = 'S/N';
|
||||
}else{
|
||||
numberController.clear();
|
||||
}
|
||||
@@ -1666,11 +1752,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
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)',
|
||||
@@ -1681,11 +1768,12 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enabled: !edit,
|
||||
mandatory: false,
|
||||
mandatory: mandatory,
|
||||
textInputType: TextInputType.number,
|
||||
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
selectDeficiency==null&& mandatory?ErrorDefault():Container(),
|
||||
InputWithSubtitle(
|
||||
controller: messageDDDController,
|
||||
subtitle: 'Recado - DDD',
|
||||
@@ -1696,7 +1784,6 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enabled: !edit,
|
||||
mandatory: mandatory,
|
||||
textInputType: TextInputType.number,
|
||||
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
|
||||
onChanged: (v)=>setState((){}),
|
||||
@@ -1711,7 +1798,6 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
enabled: !edit,
|
||||
mandatory: mandatory,
|
||||
textInputType: TextInputType.number,
|
||||
inputFormatters: [FilteringTextInputFormatter.digitsOnly,],
|
||||
onChanged: (v)=>setState((){}),
|
||||
@@ -1727,8 +1813,18 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
mandatory: false,
|
||||
enabled: !edit,
|
||||
textInputType: TextInputType.emailAddress,
|
||||
onChanged: (v)=>setState((){}),
|
||||
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,)
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -1864,7 +1960,7 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
subtitle: 'RG',
|
||||
errorInput: 'Campo Obrigatório',
|
||||
labelInput: 'RG',
|
||||
maxLength: 8,
|
||||
maxLength: 9,
|
||||
widthInput: width*0.7,
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
@@ -2068,6 +2164,10 @@ class _RegisterCitizenScreenState extends State<RegisterCitizenScreen> {
|
||||
mandatory: false,
|
||||
enabled: !edit,
|
||||
onChanged: (v)=>setState((){}),
|
||||
textInputType: TextInputType.number,
|
||||
inputFormatters: [
|
||||
FilteringTextInputFormatter.digitsOnly,
|
||||
],
|
||||
),
|
||||
InputWithSubtitle(
|
||||
controller: numberCTPSController,
|
||||
|
||||
@@ -72,6 +72,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
List<String> listSanitary = [];
|
||||
List<String> listCBO = [];
|
||||
List<String> listINEPROF = [];
|
||||
List listaINE = [];
|
||||
|
||||
int idUsuario = 0;
|
||||
String idUnidade = '';
|
||||
@@ -149,7 +150,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
});
|
||||
_prefService.readCacheUnidade().then((value){
|
||||
if(value!=null){
|
||||
idUnidade = value[0];
|
||||
idUnidade = value[0].toString();
|
||||
nomeUnidade = value[1];
|
||||
}
|
||||
loadLists();
|
||||
@@ -228,10 +229,13 @@ 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.length==0?false:dataHome[0]['FORA_AREA']==1?true:false;
|
||||
@@ -334,8 +338,8 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
});
|
||||
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(() {});
|
||||
}
|
||||
@@ -374,10 +378,24 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
'POSSUI_FINANCIAMENTO' : POSSUI_FINANCIAMENTO?'S':'N',
|
||||
'POSSUI_EMPRESTIMO' : POSSUI_EMPRESTIMO?'S':'N',
|
||||
'DT_HORA_CADASTRO' : '${f.format(DateTime.now())}',
|
||||
'ORIGEM' : 'A',
|
||||
'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,
|
||||
@@ -387,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,
|
||||
@@ -404,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,
|
||||
@@ -416,8 +434,11 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
'CARGO_RESP_TECNICO_INST' : CARGO_RESP_TECNICO_INST,
|
||||
'TEL_RESP_TECNICO_INST' : TEL_RESP_TECNICO_INST,
|
||||
};
|
||||
|
||||
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',
|
||||
@@ -426,6 +447,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
'Cadastro Domiciliar realizado com sucesso!',
|
||||
'OK'
|
||||
);
|
||||
|
||||
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (route) => false);
|
||||
// print(value);
|
||||
});
|
||||
@@ -445,7 +467,7 @@ class _RegisterHomeScreenState extends State<RegisterHomeScreen> {
|
||||
double width = MediaQuery.of(context).size.width;
|
||||
|
||||
return WillPopScope(
|
||||
onWillPop: ()async => await OnBackButton().onBackButton(context, widget.username),
|
||||
onWillPop: !edit?null:()async => await OnBackButton().onBackButton(context, widget.username),
|
||||
child: Scaffold(
|
||||
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Domiciliar',widget.username),
|
||||
body: Container(
|
||||
@@ -548,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,
|
||||
@@ -571,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');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -177,7 +177,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
});
|
||||
_prefService.readCacheUnidade().then((value){
|
||||
if(value!=null){
|
||||
idUnidade = value[0];
|
||||
idUnidade = value[0].toString();
|
||||
nomeUnidade = value[1];
|
||||
}
|
||||
loadLists();
|
||||
@@ -226,11 +226,13 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
|
||||
loadCadIndividual()async{
|
||||
ID_CIDADAO = widget.listData[0]['ID_CIDADAO'];
|
||||
print(widget.listData[0]['ID_CAD_INDIVIDUAL']);
|
||||
// print(widget.listData[0]['ID_CAD_INDIVIDUAL']);
|
||||
print('ID_CIDADAO');
|
||||
print(ID_CIDADAO);
|
||||
|
||||
await DBQuerys().buscaCadInvidual(ID_CIDADAO).then((dataCitizen)async{
|
||||
if(dataCitizen.length != 0) {
|
||||
|
||||
if(dataCitizen.isNotEmpty) {
|
||||
ID_PROFISSIONAL = dataCitizen[0]['ID_RESP_CADASTRO'];
|
||||
TIPO_SALVAR = 'update';
|
||||
showTab = true;
|
||||
@@ -243,8 +245,8 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
|
||||
if(dataCitizen[0]['INE']!=null){
|
||||
print('co');
|
||||
String ine = 'INE: ${dataCitizen[0]['INE']} / Área : ${dataCitizen[0]['AREA']} - Microárea : ${dataCitizen[0]['MICROAREA']}';
|
||||
INE_RESP_CADASTRO = 'INE: ${dataCitizen[0]['INE']} / Área: ${dataCitizen[0]['AREA']} - Microárea : ${dataCitizen[0]['MICROAREA']}';
|
||||
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'],
|
||||
@@ -254,8 +256,8 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
}else{
|
||||
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
|
||||
for(int i=0; list.length > i;i++){
|
||||
String 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']}';
|
||||
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!,
|
||||
@@ -422,20 +424,21 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
OUTROS_HIGIENE = dataCitizen[0]['OUTROS_HIGIENE'] == 1 ? true : false;
|
||||
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(() {});
|
||||
}else{
|
||||
showTab = true;
|
||||
}
|
||||
CNES_RESP_CADASTRO.text = dataCitizen[0]['CNES_RESP_CADASTRO']=='null'?'':dataCitizen[0]['CNES_RESP_CADASTRO'];
|
||||
if(listINE.length == 0){
|
||||
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
|
||||
for(int i=0; list.length > i;i++){
|
||||
ID_AREA_CIDADAO = list[i]['ID_ATB_AREA'];
|
||||
ID_MICROAREA_CIDADAO = list[i]['ID_ATB_MICROAREA'];
|
||||
ID_MICROAREA_CIDADAO = list[i]['ID_ATB_MICROAREA']==null?0:list[i]['ID_ATB_MICROAREA'];
|
||||
INE_DB = list[i]['INE'];
|
||||
String 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']}';
|
||||
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!,
|
||||
@@ -443,7 +446,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
ID_AREA_CIDADAO: list[i]['ID_ATB_AREA']
|
||||
)
|
||||
);
|
||||
listINEPROF.add('INE: ${list[i]['INE']} / Área: ${list[i]['AREA']} - 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){
|
||||
@@ -579,7 +582,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
'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,
|
||||
@@ -602,6 +605,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
'OK'
|
||||
);
|
||||
setState(() {
|
||||
edit = false;
|
||||
showTab = true;
|
||||
});
|
||||
// print(value);
|
||||
@@ -650,7 +654,7 @@ class _RegisterIndividualScreenState extends State<RegisterIndividualScreen> {
|
||||
double width = MediaQuery.of(context).size.width;
|
||||
|
||||
return WillPopScope(
|
||||
onWillPop: ()async=> await OnBackButton().onBackButton(context, widget.username),
|
||||
onWillPop: !edit?null:()async=> await OnBackButton().onBackButton(context, widget.username),
|
||||
child: Scaffold(
|
||||
appBar: AppBarDefault().appbar(context, 'RKM AB - Cadastro Individual',widget.username),
|
||||
body: Container(
|
||||
|
||||
@@ -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';
|
||||
@@ -24,16 +26,17 @@ import '../../widgets/text_default.dart';
|
||||
import '../../widgets/title_containers.dart';
|
||||
import '../home_screen.dart';
|
||||
|
||||
class ServiceHomeScreen extends StatefulWidget {
|
||||
class AtendimentoDomiciliarTela extends StatefulWidget {
|
||||
String name;
|
||||
String username;
|
||||
ServiceHomeScreen({required this.name,required this.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();
|
||||
@@ -50,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;
|
||||
@@ -73,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;
|
||||
@@ -137,25 +145,39 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
|
||||
// print('idUsuario get');
|
||||
// print(idUsuario);
|
||||
loadData();
|
||||
getPro();
|
||||
// getProcedimentos();
|
||||
}
|
||||
});
|
||||
_prefService.readCacheUnidade().then((value){
|
||||
if(value!=null){
|
||||
idUnidade = value[0];
|
||||
idUnidade = value[0].toString();
|
||||
CNES_UNIDADE.text = value[1];
|
||||
}
|
||||
});
|
||||
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'];
|
||||
@@ -163,77 +185,75 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
|
||||
if(CNS_PROFISSIONAL == 999999999999999 || CNS_PROFISSIONAL == '999999999999999'){
|
||||
CNS_VALIDO = true;
|
||||
}
|
||||
setState(() {});
|
||||
});
|
||||
await DBQuerys().buscaCBOProfissional(idUsuario).then((list)async{
|
||||
if(list.length!=0){
|
||||
for(int i = 0; list.length>i;i++){
|
||||
listCBO.add(list[i]['CODIGO_CBO'].toString());
|
||||
}
|
||||
}
|
||||
if(listCBO.isNotEmpty){
|
||||
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{
|
||||
|
||||
//sigtap
|
||||
for(int i = 0; listCBO.length>i;i++){
|
||||
print(listCBO[i]);
|
||||
await DBQuerys().buscaCBOSProfissional(listCBO[i]).then((sigtap)async{
|
||||
print('indice $i');
|
||||
print(sigtap);
|
||||
if(listCBO[i]==sigtap[0]['CODIGO_CBO']){
|
||||
PROCEDIMENTOS_SIGTAP.add(sigtap[0]['CODIGO_CBO']+' - ' + sigtap[0]['DESCRICAO_CBO']);
|
||||
List<String> aux = PROCEDIMENTOS_SIGTAP.toSet().toList();
|
||||
PROCEDIMENTOS_SIGTAP = aux;
|
||||
}
|
||||
});
|
||||
}
|
||||
print(PROCEDIMENTOS_SIGTAP);
|
||||
setState(() {});
|
||||
// await ApiDataImportSigtap().loadSIGTAP(urlAPI, mode, nameCityApi).then((value)async{
|
||||
// List<dynamic> procedimentos = value['procedimentos'];
|
||||
// print(procedimentos.length);
|
||||
// print(procedimentos);
|
||||
// if(procedimentos.isNotEmpty){
|
||||
// await DbSqliteSigtap().saveProceduresSigtapDB(procedimentos).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']);
|
||||
// List<String> aux = PROCEDIMENTOS_SIGTAP.toSet().toList();
|
||||
// PROCEDIMENTOS_SIGTAP = aux;
|
||||
// }
|
||||
// }
|
||||
// setState(() {
|
||||
// loadSIGTAP = false;
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
});
|
||||
}
|
||||
CBO_RESP_CADASTRO = list.length == 0?null:list[0]['CODIGO_CBO'].toString();
|
||||
setState(() {});
|
||||
});
|
||||
// print('IdUsuario: ${idUsuario}');
|
||||
// print('IdUnidade: '+idUnidade);
|
||||
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 || CBO_PROFISSIONAL == null
|
||||
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(() {
|
||||
@@ -250,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' : idUsuario,
|
||||
'CBO_PROFISSIONAL' : CBO_PROFISSIONAL,
|
||||
'CBO_PROFISSIONAL' : CBO_PROFISSIONAL_DB,
|
||||
'INE_PROFISSIONAL' : INE_PROFISSIONAL,
|
||||
'CNES_UNIDADE' : CNES_UNIDADE.text,
|
||||
'ID_UNIDADE' : int.parse(idUnidade),
|
||||
@@ -270,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(
|
||||
@@ -296,10 +428,11 @@ 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']??0;
|
||||
if(widget.dados==null){
|
||||
List list = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
|
||||
INE_PROFISSIONAL = list[0]['INE']??'';
|
||||
ID_EQUIPE = list[0]['ID_EQUIPE']??0;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -365,7 +498,7 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
DropdownWithSubtitle(
|
||||
list: PROCEDIMENTOS_SIGTAP,
|
||||
list: listCBO,
|
||||
widthSubtitle: width*0.7,
|
||||
subtitle: 'CBO',
|
||||
hintDropdown: 'CBO',
|
||||
@@ -375,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,
|
||||
@@ -531,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*0.95,
|
||||
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,
|
||||
@@ -605,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,
|
||||
)
|
||||
@@ -635,22 +774,31 @@ class _ServiceHomeScreenState extends State<ServiceHomeScreen> {
|
||||
padding: const EdgeInsets.symmetric(horizontal: 10.0),
|
||||
child: Container(
|
||||
width: width*0.7,
|
||||
height: heigth*0.9,
|
||||
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);
|
||||
}),
|
||||
);
|
||||
}
|
||||
),
|
||||
@@ -712,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(),
|
||||
],
|
||||
)
|
||||
)
|
||||
),
|
||||
]
|
||||
)
|
||||
),
|
||||
]
|
||||
)
|
||||
),
|
||||
@@ -485,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(
|
||||
@@ -515,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(
|
||||
@@ -539,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(
|
||||
@@ -731,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(
|
||||
@@ -755,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(
|
||||
@@ -779,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(
|
||||
|
||||
@@ -24,16 +24,17 @@ import '../../widgets/switch_with_subtitle.dart';
|
||||
import '../../widgets/text_default.dart';
|
||||
import '../../widgets/title_containers.dart';
|
||||
|
||||
class HomeVisitScreen extends StatefulWidget {
|
||||
class VisitaDomiciliarTela extends StatefulWidget {
|
||||
String name;
|
||||
String username;
|
||||
HomeVisitScreen({required this.name, required this.username});
|
||||
var dados;
|
||||
VisitaDomiciliarTela({required this.name, required this.username, required this.dados});
|
||||
|
||||
@override
|
||||
State<HomeVisitScreen> createState() => _HomeVisitScreenState();
|
||||
State<VisitaDomiciliarTela> createState() => _VisitaDomiciliarTelaState();
|
||||
}
|
||||
|
||||
class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
class _VisitaDomiciliarTelaState extends State<VisitaDomiciliarTela> {
|
||||
|
||||
var PESO = TextEditingController();
|
||||
var ALTURA = TextEditingController();
|
||||
@@ -54,6 +55,9 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
bool ACAO_MECANICA = false;
|
||||
bool IMOVEL_FOCO = false;
|
||||
bool TRATAMENTO_FOCAL = false;
|
||||
bool sexoCidadaoFeminino = false;
|
||||
|
||||
bool carregando = true;
|
||||
|
||||
String? TURNO;
|
||||
String? TIPO_IMOVEL;
|
||||
@@ -67,6 +71,8 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
int ID_PROFISSIONAL=0;
|
||||
int ID_CIDADAO=0;
|
||||
int ID_EQUIPE=0;
|
||||
int ID_VISITA_DOMICILIAR=0;
|
||||
String CBO_DB ='0';
|
||||
|
||||
String INE_PROFISSIONAL='';
|
||||
String CD_USUARIO_SUS='';
|
||||
@@ -84,6 +90,7 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
List<CheckModel> tipoAcompanhamentoModel = [];
|
||||
List<CheckModel> outrosModel = [];
|
||||
List listProc = [];
|
||||
List listProf = [];
|
||||
|
||||
escolherprazoInicio(BuildContext context) async {
|
||||
var pickDate = await showDatePicker(
|
||||
@@ -109,6 +116,7 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
|
||||
getUsers()async{
|
||||
await DBQuerys().buscaCidadao(widget.name).then((list){
|
||||
sexoCidadaoFeminino = list[0]['SEXO']=='M'?false:true;
|
||||
ID_CIDADAO = list[0]['ID_CIDADAO'];
|
||||
CD_USUARIO_SUS = list[0]['CD_USUARIO_SUS'];
|
||||
});
|
||||
@@ -121,13 +129,39 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
});
|
||||
_prefService.readCacheUnidade().then((value){
|
||||
if(value!=null){
|
||||
idUnidade = value[0];
|
||||
idUnidade = value[0].toString();
|
||||
CNES_UNIDADE.text = value[1];
|
||||
}
|
||||
});
|
||||
Database dbcbo = await DbSqliteLoad().intialDB();
|
||||
var query = 'SELECT * FROM PROFISSIONAIS_CBOS WHERE ID_PROFISSIONAL = $idUsuario';
|
||||
List listcbo = await dbcbo.rawQuery(query);
|
||||
var querycbo = 'SELECT * FROM PROFISSIONAIS_CBOS WHERE ID_PROFISSIONAL = $idUsuario';
|
||||
List listcbo = await dbcbo.rawQuery(querycbo);
|
||||
List todosSigtap = [];
|
||||
// print('listcbo');
|
||||
// print(listcbo.length);
|
||||
// print(listcbo);
|
||||
|
||||
for(int i = 0; listcbo.length > i ; i++){
|
||||
var querySigtap = 'SELECT * FROM PROCEDIMENTOS_SIGTAP_CBO WHERE CODIGO_CBO = ${listcbo[i]['CODIGO_CBO']}';
|
||||
List listSigtap = await dbcbo.rawQuery(querySigtap);
|
||||
|
||||
todosSigtap.addAll(listSigtap);
|
||||
// print('listSigtap');
|
||||
// print(listSigtap.length);
|
||||
// print('todosSigtap');
|
||||
// print(todosSigtap.length);
|
||||
}
|
||||
|
||||
List aux = todosSigtap.toSet().toList();
|
||||
todosSigtap = aux;
|
||||
|
||||
for(int i = 0; todosSigtap.length > i ; i++){
|
||||
var querySigtapDesc = 'SELECT * FROM PROCEDIMENTOS_SIGTAP WHERE COD_PROC_SIGTAP = \'${todosSigtap[i]['COD_PROC_SIGTAP']}\'';
|
||||
List listSigtapDesc = await dbcbo.rawQuery(querySigtapDesc);
|
||||
if(listSigtapDesc.isNotEmpty){
|
||||
PROCEDIMENTOS_SIGTAP.add('${listSigtapDesc[0]['COD_PROC_SIGTAP']} - ${listSigtapDesc[0]['DESC_PROC_SIGTAP']}');
|
||||
}
|
||||
}
|
||||
|
||||
if(listcbo.length!=0){
|
||||
for(int i = 0; listcbo.length>i;i++){
|
||||
@@ -139,27 +173,32 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
}
|
||||
}
|
||||
|
||||
var querycbo = 'SELECT * FROM CBOS WHERE CODIGO_CBO = 223208';
|
||||
// var query = 'SELECT * FROM PROFISSIONAIS_CBOS';
|
||||
/*var querycbo = 'SELECT * FROM CBOS WHERE CODIGO_CBO = 223208';
|
||||
var query = 'SELECT * FROM PROFISSIONAIS_CBOS';
|
||||
List listcbocompleta = await dbcbo.rawQuery(querycbo);
|
||||
print(listcbocompleta);
|
||||
print(listcbocompleta);*/
|
||||
|
||||
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']}'}');
|
||||
}
|
||||
var db = await DbSqliteLoad().intialDB();
|
||||
List listSIGTAP = await db.query('PROCEDIMENTOS_SIGTAP');
|
||||
for(int i = 0; listSIGTAP.length>i;i++){
|
||||
if(listSIGTAP[i]['COD_PROC_SIGTAP']!=null && listSIGTAP[i]['DESC_PROC_SIGTAP']!=null){
|
||||
PROCEDIMENTOS_SIGTAP.add('${listSIGTAP[i]['COD_PROC_SIGTAP']} - ${listSIGTAP[i]['DESC_PROC_SIGTAP']}');
|
||||
}
|
||||
}
|
||||
List listProf = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
|
||||
// var db = await DbSqliteLoad().intialDB();
|
||||
// List listSIGTAP = await db.query('PROCEDIMENTOS_SIGTAP');
|
||||
// for(int i = 0; listSIGTAP.length>i;i++){
|
||||
// if(listSIGTAP[i]['COD_PROC_SIGTAP']!=null && listSIGTAP[i]['DESC_PROC_SIGTAP']!=null){
|
||||
// PROCEDIMENTOS_SIGTAP.add('${listSIGTAP[i]['COD_PROC_SIGTAP']} - ${listSIGTAP[i]['DESC_PROC_SIGTAP']}');
|
||||
// }
|
||||
// }
|
||||
listProf = await DBQuerys().buscaDadosProfissional(idUnidade,idUsuario);
|
||||
INE_PROFISSIONAL = listProf[0]['INE'];
|
||||
ID_EQUIPE = listProf[0]['ID_EQUIPE'];
|
||||
carregando = false;
|
||||
setState(() {});
|
||||
|
||||
if(widget.dados!=null){
|
||||
editarVisita();
|
||||
}
|
||||
}
|
||||
|
||||
loadLists()async {
|
||||
@@ -176,8 +215,8 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
}
|
||||
|
||||
loadData()async{
|
||||
print('idUsuario');
|
||||
print(idUsuario);
|
||||
// print('idUsuario');
|
||||
// print(idUsuario);
|
||||
await DBQuerys().buscaProfissionalCadInd(idUsuario).then((list){
|
||||
ID_PROFISSIONAL = list['ID_PROFISSIONAL'];
|
||||
NOME_PROFISSIONAL.text = list['NOME_PROFISSIONAL'];
|
||||
@@ -190,86 +229,44 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
}
|
||||
|
||||
checkSave()async{
|
||||
// adicionar depois e usar um usuário real
|
||||
// CBO_RESP_CADASTRO
|
||||
//ok
|
||||
if(date.isEmpty || dateDB.isEmpty || TIPO_IMOVEL_COD==0 || DESFECHO_COD ==0 || TURNO_COD == 0 || CBO_PROFISSIONAL == null
|
||||
/* adicionar depois e usar um usuário real
|
||||
CBO_RESP_CADASTRO
|
||||
ok*/
|
||||
//salvar
|
||||
|
||||
if(date.isEmpty || dateDB.isEmpty || TIPO_IMOVEL_COD==0 || DESFECHO_COD ==0 || TURNO_COD == 0 || CBO_PROFISSIONAL == null ||
|
||||
( ALTURA.text.isEmpty?false:double.parse(ALTURA.text.replaceAll(',', '.'))<=0.2 && double.parse(ALTURA.text.replaceAll(',', '.')) >= 2.5 && ALTURA.text.isEmpty) ||
|
||||
( PESO.text.isEmpty?false:double.parse(PESO.text.replaceAll(',', '.'))<=0.5 && double.parse(PESO.text.replaceAll(',', '.')) >= 500 && PESO.text.isEmpty)
|
||||
){
|
||||
print('erro');
|
||||
print('erro principal');
|
||||
setState(() {
|
||||
showCheckError = true;
|
||||
mandatory = true;
|
||||
});
|
||||
}else{
|
||||
print('passou');
|
||||
setState(() {
|
||||
mandatory = false;
|
||||
showCheckError = false;
|
||||
//TIPO VISITA
|
||||
if(tipoVisitaModel[0].check || tipoVisitaModel[1].check){
|
||||
//BUSCA ATIVA
|
||||
if(CONSULTA || VACINA || EXAME || CONDICIONALIDADES){
|
||||
//CONTROLE AMBIENTAL
|
||||
if(ACAO_EDUCATIVA || ACAO_MECANICA || IMOVEL_FOCO || TRATAMENTO_FOCAL){
|
||||
bool check1 = false;
|
||||
bool check2 = false;
|
||||
for(int i=0; tipoAcompanhamentoModel.length>i;i++){
|
||||
if(tipoAcompanhamentoModel[i].check){
|
||||
print('pegou a $i');
|
||||
check1 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for(int i=0; outrosModel.length>i;i++){
|
||||
if(outrosModel[i].check){
|
||||
print('outros $i');
|
||||
check2 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!check1 || !check2){
|
||||
AlertDialogDefault().alert(
|
||||
context,
|
||||
'Aviso',
|
||||
'É obrigatória a seleção de pelo menos uma opção dentre os campos Tipo da Visita, Busca ativa, Controle Ambiental, Acompanhamento e Outros.',
|
||||
'OK'
|
||||
);
|
||||
}
|
||||
if(check1 && check2){
|
||||
print('save');
|
||||
saveHomeVisit();
|
||||
}
|
||||
|
||||
}else{
|
||||
print('AQUI');
|
||||
AlertDialogDefault().alert(
|
||||
context,
|
||||
'Aviso',
|
||||
'É obrigatória a seleção de pelo menos uma opção dentre os campos Tipo da Visita, Busca ativa, Controle Ambiental, Acompanhamento e Outros.',
|
||||
'OK'
|
||||
);
|
||||
}
|
||||
}else{
|
||||
print('nesse');
|
||||
AlertDialogDefault().alert(
|
||||
context,
|
||||
'Aviso',
|
||||
'É obrigatória a seleção de pelo menos uma opção dentre os campos Tipo da Visita, Busca ativa, Controle Ambiental, Acompanhamento e Outros.',
|
||||
'OK'
|
||||
);
|
||||
}
|
||||
}else{
|
||||
AlertDialogDefault().alert(
|
||||
context,
|
||||
'Aviso',
|
||||
'É obrigatória a seleção de pelo menos uma opção dentre os campos Tipo da Visita, Busca ativa, Controle Ambiental, Acompanhamento e Outros.',
|
||||
'OK'
|
||||
);
|
||||
}
|
||||
/*TIPO VISITA*/
|
||||
print('save');
|
||||
saveHomeVisit();
|
||||
});
|
||||
}
|
||||
}
|
||||
saveHomeVisit()async{
|
||||
int ID_UNIDADE = 0;
|
||||
for (int i = 0; listProf.length > i; i++) {
|
||||
if (listProf[i]['INE'] == INE_PROFISSIONAL) {
|
||||
ID_EQUIPE = listProf[i]['ID_EQUIPE'];
|
||||
// INE_DB = listProf[i]['INE'];
|
||||
ID_UNIDADE = listProf[i]['ID_UNIDADE'];
|
||||
// print('lista');
|
||||
// print(listProf[i]);
|
||||
}
|
||||
}
|
||||
|
||||
var CNES_UNIDADE = await DBQuerys().cnesUnidade(ID_UNIDADE);
|
||||
|
||||
Map<String, dynamic> row = {
|
||||
'ID_CIDADAO' : ID_CIDADAO,
|
||||
'CD_USUARIO_SUS' : CD_USUARIO_SUS,
|
||||
@@ -278,126 +275,313 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
'TIPO_IMOVEL' : TIPO_IMOVEL_COD,
|
||||
'VISITA_ACOMPANHADA' : VISITA_ACOMPANHADA?1:2,
|
||||
'DESFECHO' : DESFECHO_COD,
|
||||
'PESO' : PESO.text,
|
||||
'ALTURA' : ALTURA.text,
|
||||
'PESO' : PESO.text.toString().replaceAll(',', '.'),
|
||||
'ALTURA' : ALTURA.text.toString().replaceAll(',','').replaceAll('.',''),
|
||||
'ID_PROFISSIONAL' : idUsuario,
|
||||
'CBO_PROFISSIONAL' : CBO_PROFISSIONAL,
|
||||
'CBO_PROFISSIONAL' : CBO_DB,
|
||||
'INE_PROFISSIONAL' : INE_PROFISSIONAL,
|
||||
'CNES_UNIDADE' : CNES_UNIDADE.text,
|
||||
'CNES_UNIDADE' : CNES_UNIDADE,
|
||||
'ID_UNIDADE' : int.parse(idUnidade),
|
||||
'ID_EQUIPE' : ID_EQUIPE,
|
||||
'COMPLEMENTO' : COMPLEMENTO.text,
|
||||
'SINCRONIZADO' : 'N',
|
||||
};
|
||||
await DbSqliteSync().insertVisitaDomiciliar(row).then((value)async{
|
||||
print('value');
|
||||
print(value);
|
||||
//tipo visita == 1
|
||||
await DbSqliteSync().insertVisitaDomiciliar(row,ID_VISITA_DOMICILIAR, widget.dados==null).then((value)async{
|
||||
// print('value');
|
||||
// print(value);
|
||||
/*tipo visita == 1*/
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
await db.delete(
|
||||
'VISITAS_DOMICILIARES_COMPL', // Substitua pelo nome da sua tabela
|
||||
where: 'ID_VISITA_DOMICILIAR = ?',
|
||||
whereArgs: [ID_VISITA_DOMICILIAR],
|
||||
);
|
||||
for(int i = 0;tipoVisitaModel.length>i;i++){
|
||||
if(tipoVisitaModel[i].check){
|
||||
//cadastramento = 1
|
||||
/*cadastramento = 1*/
|
||||
if(i==0){
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,1,1);
|
||||
}else if(i == 1){
|
||||
//periodica = 29
|
||||
/*periodica = 29*/
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,1,29);
|
||||
}
|
||||
}
|
||||
}
|
||||
//busca ativa == 2
|
||||
//CONSULTA 2
|
||||
/*busca ativa == 2
|
||||
CONSULTA 2*/
|
||||
if(CONSULTA){
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,2);
|
||||
}
|
||||
//busca ativa == 2
|
||||
//EXAME 3
|
||||
/*busca ativa == 2
|
||||
EXAME 3*/
|
||||
if(EXAME){
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,3);
|
||||
}
|
||||
//busca ativa == 2
|
||||
//VACINA 8
|
||||
/*busca ativa == 2
|
||||
VACINA 8*/
|
||||
if(VACINA){
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,8);
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,4);
|
||||
}
|
||||
//busca ativa == 2
|
||||
//CONDICIONALIDADES 30
|
||||
/*busca ativa == 2
|
||||
CONDICIONALIDADES 30*/
|
||||
if(CONDICIONALIDADES){
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,2,30);
|
||||
}
|
||||
//controle ambiental == 5
|
||||
// ACAO_EDUCATIVA == 34
|
||||
/*controle ambiental == 5
|
||||
ACAO_EDUCATIVA == 34*/
|
||||
if(ACAO_EDUCATIVA){
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,5,34);
|
||||
}
|
||||
//controle ambiental == 5
|
||||
// IMOVEL_FOCO == 35
|
||||
/*controle ambiental == 5
|
||||
IMOVEL_FOCO == 35*/
|
||||
if(IMOVEL_FOCO){
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,5,35);
|
||||
}
|
||||
//controle ambiental == 5
|
||||
// ACAO_MECANICA == 36
|
||||
/*controle ambiental == 5
|
||||
ACAO_MECANICA == 36*/
|
||||
if(ACAO_MECANICA){
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,5,36);
|
||||
}
|
||||
//controle ambiental == 5
|
||||
// TRATAMENTO_FOCAL == 37
|
||||
/*controle ambiental == 5
|
||||
TRATAMENTO_FOCAL == 37*/
|
||||
if(TRATAMENTO_FOCAL){
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,5,37);
|
||||
}
|
||||
|
||||
//ACOMPANHAMENTO == 3
|
||||
/*ACOMPANHAMENTO == 3*/
|
||||
for(int i=0; tipoAcompanhamentoModel.length>i;i++){
|
||||
if(tipoAcompanhamentoModel[i].check){
|
||||
print('pegou a $i');
|
||||
print(tipoAcompanhamentoModel[i].subtitle);
|
||||
if(i<=13){
|
||||
print('CODIGO ${i+5}');
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,i+5);
|
||||
}else if(i==14){
|
||||
//respiratorios == 32
|
||||
print('CODIGO ${i}');
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,32);
|
||||
}else if(i==15){
|
||||
print('CODIGO ${i}');
|
||||
//tabagista == 33
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,33);
|
||||
}else if(i>=16){
|
||||
print('CODIGO ${i+3}');
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,i+3);
|
||||
}
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,3,tipoAcompanhamentoModel[i].cod);
|
||||
}
|
||||
}
|
||||
//outros == 4
|
||||
/*outros == 4*/
|
||||
for(int i=0; outrosModel.length>i;i++){
|
||||
if(outrosModel[i].check){
|
||||
print('outros a $i');
|
||||
print(outrosModel[i].subtitle);
|
||||
//orientacao prevencao == 31
|
||||
if(i==3){
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,4,31);
|
||||
}else if(i==4){
|
||||
print('CODIGO outros ${i+24}');
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,4,i+24);
|
||||
}else{
|
||||
print('CODIGO outros ${i+25}');
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,4,i+25);
|
||||
}
|
||||
await DbSqliteSync().insertVisitaDomiciliarCOMPL(value,4,outrosModel[i].cod);
|
||||
}
|
||||
}
|
||||
for(int i=0;listProc.length>i;i++){
|
||||
List splitted = listProc[i].toString().split(' ');
|
||||
await DbSqliteSync().insertVISITAS_DOMICILIARES_PROC(value,splitted[0]);
|
||||
}
|
||||
AlertDialogDefault().alert(
|
||||
AlertDialogDefault().sucess(
|
||||
context,
|
||||
'Aviso',
|
||||
'Visita Domiciliar realizada com sucesso!',
|
||||
'OK'
|
||||
'OK',
|
||||
(){
|
||||
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (route) => false);
|
||||
}
|
||||
);
|
||||
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: widget.username)), (route) => false);
|
||||
});
|
||||
}
|
||||
|
||||
editarVisita()async{
|
||||
Map map = widget.dados;
|
||||
map.forEach((chave, valor){
|
||||
print('$chave : $valor');
|
||||
});
|
||||
ID_VISITA_DOMICILIAR = map['ID_VISITA_DOMICILIAR'];
|
||||
dateDB = map['DT_ATENDIMENTO'];
|
||||
List splited = dateDB.split('-');
|
||||
date = '${splited[2]}/${splited[1]}/${splited[0]}';
|
||||
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;
|
||||
}
|
||||
}
|
||||
TIPO_IMOVEL_COD = map['TIPO_IMOVEL'];
|
||||
for(int i = 0;ConstVariable().listTypeHome.length >i;i++){
|
||||
if(ConstVariable().listTypeHome[i].cod == TIPO_IMOVEL_COD){
|
||||
TIPO_IMOVEL = ConstVariable().listTypeHome[i].title;
|
||||
}
|
||||
}
|
||||
VISITA_ACOMPANHADA = map['VISITA_ACOMPANHADA']==1?true:false;
|
||||
DESFECHO_COD = map['DESFECHO'];
|
||||
for(int i = 0;ConstVariable().listDesfecho.length >i;i++){
|
||||
if(ConstVariable().listDesfecho[i].cod == DESFECHO_COD){
|
||||
DESFECHO = ConstVariable().listDesfecho[i].title;
|
||||
}
|
||||
}
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
List listaVisita = await db.query('VISITAS_DOMICILIARES_COMPL WHERE ID_VISITA_DOMICILIAR = $ID_VISITA_DOMICILIAR');
|
||||
for (int index = 0; index < ConstVariable().tipoVisitaModel.length; index++) {
|
||||
bool tipoVisitaCadastramento = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 1 && cond['ID_VISITA_COMPLEMENTO'] == 1);
|
||||
bool tipoVisitaPediodica = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 1 && cond['ID_VISITA_COMPLEMENTO'] == 29);
|
||||
|
||||
//TIPO DE VISITA CADASTRAMENTO/ATUALIZAÇÃO
|
||||
if(index == 0){
|
||||
tipoVisitaModel.add(
|
||||
CheckModel(
|
||||
cod: 0,
|
||||
subtitle: ConstVariable().tipoVisitaModel[index],
|
||||
check: tipoVisitaCadastramento
|
||||
)
|
||||
);
|
||||
}
|
||||
//TIPO DE VISITA PERIÓDICA
|
||||
if(index == 1){
|
||||
tipoVisitaModel.add(
|
||||
CheckModel(
|
||||
cod: 29,
|
||||
subtitle: ConstVariable().tipoVisitaModel[index],
|
||||
check: tipoVisitaPediodica
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
//BUSCA ATIVA CONSULTA
|
||||
CONSULTA = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 2 && cond['ID_VISITA_COMPLEMENTO'] == 2);
|
||||
//BUSCA ATIVA EXAME
|
||||
EXAME = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 2 && cond['ID_VISITA_COMPLEMENTO'] == 3);
|
||||
//BUSCA ATIVA VACINA
|
||||
VACINA = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 2 && cond['ID_VISITA_COMPLEMENTO'] == 8);
|
||||
//BUSCA ATIVA CONDICIONALIDADES
|
||||
CONDICIONALIDADES = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 2 && cond['ID_VISITA_COMPLEMENTO'] == 30);
|
||||
//BUSCA ATIVA ACAO_EDUCATIVA
|
||||
ACAO_EDUCATIVA = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 5 && cond['ID_VISITA_COMPLEMENTO'] == 34);
|
||||
//BUSCA ATIVA IMOVEL_FOCO
|
||||
IMOVEL_FOCO = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 5 && cond['ID_VISITA_COMPLEMENTO'] == 35);
|
||||
//BUSCA ATIVA ACAO_MECANICA
|
||||
ACAO_MECANICA = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 5 && cond['ID_VISITA_COMPLEMENTO'] == 36);
|
||||
//BUSCA ATIVA TRATAMENTO_FOCAL
|
||||
TRATAMENTO_FOCAL = listaVisita.any((cond) =>cond['ID_VISITA_DOM_TIPO'] == 5 && cond['ID_VISITA_COMPLEMENTO'] == 37);
|
||||
}
|
||||
for (int i = 0; i < ConstVariable().tipoAcompanhamentoModel.length; i++) {
|
||||
tipoAcompanhamentoModel.add(
|
||||
CheckModel(
|
||||
cod: ConstVariable().tipoAcompanhamentoModel[i].cod,
|
||||
subtitle: ConstVariable().tipoAcompanhamentoModel[i].subtitle,
|
||||
check: listaVisita.any((cond) =>cond['ID_VISITA_COMPLEMENTO'] == ConstVariable().tipoAcompanhamentoModel[i].cod)
|
||||
)
|
||||
);
|
||||
}
|
||||
for(int i=0; ConstVariable().outrosModel.length>i;i++){
|
||||
outrosModel.add(
|
||||
CheckModel(
|
||||
cod: ConstVariable().outrosModel[i].cod,
|
||||
subtitle: ConstVariable().outrosModel[i].subtitle,
|
||||
check: listaVisita.any((cond) =>cond['ID_VISITA_COMPLEMENTO'] == ConstVariable().outrosModel[i].cod)
|
||||
)
|
||||
);
|
||||
}
|
||||
PESO.text = map['PESO'];
|
||||
ALTURA.text = map['ALTURA'].toString().isEmpty?'':'${int.parse(map['ALTURA'])/100}'.replaceAll('.', ',');
|
||||
CBO_DB = map['CBO_PROFISSIONAL'];
|
||||
print('CBO_DB');
|
||||
print(CBO_DB);
|
||||
for(int i = 0;listCBO.length > i; i++){
|
||||
String splited = listCBO[i].split(' - ').last;
|
||||
if(splited == CBO_DB){
|
||||
CBO_PROFISSIONAL = listCBO[i];
|
||||
}
|
||||
}
|
||||
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];
|
||||
}
|
||||
}
|
||||
COMPLEMENTO.text = map['COMPLEMENTO'];
|
||||
carregando = false;
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
alerta_cadastramento_atualizacao() {
|
||||
|
||||
double width = MediaQuery.of(context).size.width;
|
||||
|
||||
return showDialog(
|
||||
context: context,
|
||||
builder: (context){
|
||||
return AlertDialog(
|
||||
title: TextDefault(
|
||||
text: 'Aviso',
|
||||
color: ColorPalette.black54,
|
||||
textAlign: TextAlign.center,
|
||||
fontWeigth: FontWeight.bold,
|
||||
),
|
||||
content: TextDefault(
|
||||
text: 'Quando o motivo da visita for uma das opções:\n'
|
||||
'- Cadastramento/Atualização\n'
|
||||
'- Busca Ativa\n'
|
||||
'- Acompanhamento\n'
|
||||
'- Egresso de Internação\n'
|
||||
'O motivo "Visita periódica" não pode ser selecionado.',
|
||||
color: ColorPalette.black54,
|
||||
maxLines: 7,
|
||||
),
|
||||
actions: [
|
||||
ButtonDefault(
|
||||
onPressed: ()=>Navigator.pop(context),
|
||||
title: 'OK',
|
||||
width: width*0.15,
|
||||
textColor: ColorPalette.white,
|
||||
borderColor: ColorPalette.appBar,
|
||||
background: ColorPalette.appBar,
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
alerta_visita_periodica() {
|
||||
|
||||
double width = MediaQuery.of(context).size.width;
|
||||
|
||||
return showDialog(
|
||||
context: context,
|
||||
builder: (context){
|
||||
return AlertDialog(
|
||||
title: TextDefault(
|
||||
text: 'Aviso',
|
||||
color: ColorPalette.black54,
|
||||
textAlign: TextAlign.center,
|
||||
fontWeigth: FontWeight.bold,
|
||||
),
|
||||
content: TextDefault(
|
||||
text: 'O motivo da visita já foi selecionada como Visita periódica. Para selecionar um outro motivo, desmarque esta opção.',
|
||||
color: ColorPalette.black54,
|
||||
maxLines: 7,
|
||||
),
|
||||
actions: [
|
||||
ButtonDefault(
|
||||
onPressed: ()=>Navigator.pop(context),
|
||||
title: 'OK',
|
||||
width: width*0.15,
|
||||
textColor: ColorPalette.white,
|
||||
borderColor: ColorPalette.appBar,
|
||||
background: ColorPalette.appBar,
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
@@ -417,7 +601,18 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
height: double.infinity,
|
||||
width: double.infinity,
|
||||
decoration: ConstVariable().backgroundGradient,
|
||||
child: ListView(
|
||||
child: carregando?Center(child: Card(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
CircularProgressIndicator(),
|
||||
TextDefault(text: 'Carregando dados ...',color: ColorPalette.black54,)
|
||||
],
|
||||
),
|
||||
)
|
||||
)):ListView(
|
||||
children: [
|
||||
Card(
|
||||
margin: EdgeInsets.all(10),
|
||||
@@ -535,22 +730,49 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
Container(
|
||||
width: width*0.7,
|
||||
height: heigth*0.1,
|
||||
child: ListView.builder(
|
||||
child: tipoVisitaModel.isEmpty && widget.dados!=null?Container():ListView.builder(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemCount: ConstVariable().tipoVisitaModel.length,
|
||||
itemBuilder: (context,index){
|
||||
tipoVisitaModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().tipoVisitaModel[index],
|
||||
check: false
|
||||
)
|
||||
);
|
||||
if(widget.dados==null){
|
||||
tipoVisitaModel.add(
|
||||
CheckModel(
|
||||
cod: 1,
|
||||
subtitle: ConstVariable().tipoVisitaModel[index],
|
||||
check: false
|
||||
)
|
||||
);
|
||||
}
|
||||
return CheckBoxSubtitle(
|
||||
ontap:DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>tipoVisitaModel[index].check?tipoVisitaModel[index].check=false:tipoVisitaModel[index].check=true),
|
||||
ontap:DESFECHO != 'VISITA REALIZADA'?null: (){
|
||||
if(tipoVisitaModel[0].check == true && tipoVisitaModel[1].check == false && index == 1){
|
||||
alerta_cadastramento_atualizacao();
|
||||
}else if(tipoVisitaModel[0].check == false && tipoVisitaModel[1].check == true && index == 0){
|
||||
alerta_visita_periodica();
|
||||
}else if(CONSULTA || EXAME || VACINA || CONDICIONALIDADES ||
|
||||
tipoAcompanhamentoModel.any((element) => element.check) ||outrosModel[0].check ){
|
||||
alerta_cadastramento_atualizacao();
|
||||
}else{
|
||||
tipoVisitaModel[index].check?tipoVisitaModel[index].check=false:tipoVisitaModel[index].check=true;
|
||||
}
|
||||
setState((){});
|
||||
},
|
||||
subtitle: tipoVisitaModel[index].subtitle,
|
||||
checkbox:tipoVisitaModel[index].check,
|
||||
width: width*0.6,
|
||||
onChanged:DESFECHO != 'VISITA REALIZADA'?null: (value)=>setState(()=>tipoVisitaModel[index].check=value),
|
||||
onChanged:DESFECHO != 'VISITA REALIZADA'?null: (value){
|
||||
if(tipoVisitaModel[0].check == true && tipoVisitaModel[1].check == false && index == 1){
|
||||
alerta_cadastramento_atualizacao();
|
||||
}else if(tipoVisitaModel[0].check == false && tipoVisitaModel[1].check == true && index == 0){
|
||||
alerta_visita_periodica();
|
||||
}else if(CONSULTA || EXAME || VACINA || CONDICIONALIDADES ||
|
||||
tipoAcompanhamentoModel.any((element) => element.check) || outrosModel[0].check){
|
||||
alerta_cadastramento_atualizacao();
|
||||
}else{
|
||||
tipoVisitaModel[index].check=value;
|
||||
}
|
||||
setState(() {});
|
||||
},
|
||||
);
|
||||
}
|
||||
),
|
||||
@@ -562,10 +784,34 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
checkbox2: VACINA,
|
||||
subtitle1: 'CONSULTA',
|
||||
subtitle2: 'VACINA',
|
||||
onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>CONSULTA=value),
|
||||
onChanged2: DESFECHO != 'VISITA REALIZADA'?null: (value)=>setState(()=>VACINA=value),
|
||||
ontap1: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>CONSULTA?CONSULTA=false:CONSULTA=true),
|
||||
ontap2: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>VACINA?VACINA=false:VACINA=true),
|
||||
onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value){
|
||||
if(tipoVisitaModel[1].check == true){
|
||||
alerta_visita_periodica();
|
||||
}else{
|
||||
setState(()=>CONSULTA=value);
|
||||
}
|
||||
},
|
||||
onChanged2: DESFECHO != 'VISITA REALIZADA'?null: (value){
|
||||
if(tipoVisitaModel[1].check == true){
|
||||
alerta_visita_periodica();
|
||||
}else{
|
||||
setState(()=>VACINA=value);
|
||||
}
|
||||
},
|
||||
ontap1: DESFECHO != 'VISITA REALIZADA'?null: (){
|
||||
if(tipoVisitaModel[1].check == true){
|
||||
alerta_visita_periodica();
|
||||
}else{
|
||||
setState(()=>CONSULTA?CONSULTA=false:CONSULTA=true);
|
||||
}
|
||||
},
|
||||
ontap2: DESFECHO != 'VISITA REALIZADA'?null: (){
|
||||
if(tipoVisitaModel[1].check == true){
|
||||
alerta_visita_periodica();
|
||||
}else{
|
||||
setState(()=>VACINA?VACINA=false:VACINA=true);
|
||||
}
|
||||
},
|
||||
),
|
||||
CheckBoxTwoSubtitle(
|
||||
width: width*0.7,
|
||||
@@ -573,10 +819,34 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
checkbox2: CONDICIONALIDADES,
|
||||
subtitle1: 'EXAME',
|
||||
subtitle2: 'CONDICIONALIDADES',
|
||||
onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>EXAME=value),
|
||||
onChanged2: DESFECHO != 'VISITA REALIZADA'?null:(value)=>setState(()=>CONDICIONALIDADES=value),
|
||||
ontap1: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>EXAME?EXAME=false:EXAME=true),
|
||||
ontap2: DESFECHO != 'VISITA REALIZADA'?null: ()=>setState(()=>CONDICIONALIDADES?CONDICIONALIDADES=false:CONDICIONALIDADES=true),
|
||||
onChanged1: DESFECHO != 'VISITA REALIZADA'?null:(value){
|
||||
if(tipoVisitaModel[1].check == true){
|
||||
alerta_visita_periodica();
|
||||
}else{
|
||||
setState(()=>EXAME=value);
|
||||
}
|
||||
},
|
||||
onChanged2: DESFECHO != 'VISITA REALIZADA'?null:(value){
|
||||
if(tipoVisitaModel[1].check == true){
|
||||
alerta_visita_periodica();
|
||||
}else{
|
||||
setState(()=>CONDICIONALIDADES=value);
|
||||
}
|
||||
},
|
||||
ontap1: DESFECHO != 'VISITA REALIZADA'?null: (){
|
||||
if(tipoVisitaModel[1].check == true){
|
||||
alerta_visita_periodica();
|
||||
}else{
|
||||
setState(()=>EXAME?EXAME=false:EXAME=true);
|
||||
}
|
||||
},
|
||||
ontap2: DESFECHO != 'VISITA REALIZADA'?null: (){
|
||||
if(tipoVisitaModel[1].check == true){
|
||||
alerta_visita_periodica();
|
||||
}else{
|
||||
setState(()=>CONDICIONALIDADES?CONDICIONALIDADES=false:CONDICIONALIDADES=true);
|
||||
}
|
||||
},
|
||||
),
|
||||
TitleContainers(title: 'Controle Ambiental',width: width*0.7,textAling: TextAlign.start,fontSize: 15),
|
||||
CheckBoxTwoSubtitle(
|
||||
@@ -604,22 +874,33 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
TitleContainers(title: 'Acompanhamento',width: width*0.7,textAling: TextAlign.start,fontSize: 15),
|
||||
Container(
|
||||
width: width*0.7,
|
||||
height: heigth*0.85,
|
||||
child: ListView.builder(
|
||||
height: 1060,
|
||||
child: widget.dados!=null && tipoAcompanhamentoModel.isEmpty?Container():ListView.builder(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemCount: ConstVariable().tipoAcompanhamentoModel.length,
|
||||
itemBuilder: (context,index){
|
||||
tipoAcompanhamentoModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().tipoAcompanhamentoModel[index],
|
||||
check: false
|
||||
)
|
||||
);
|
||||
if(widget.dados == null){
|
||||
tipoAcompanhamentoModel.add(
|
||||
CheckModel(
|
||||
cod: ConstVariable().tipoAcompanhamentoModel[index].cod,
|
||||
subtitle: ConstVariable().tipoAcompanhamentoModel[index].subtitle,
|
||||
check: false
|
||||
)
|
||||
);
|
||||
}
|
||||
return CheckBoxSubtitle(
|
||||
subtitle: tipoAcompanhamentoModel[index].subtitle,
|
||||
checkbox:tipoAcompanhamentoModel[index].check,
|
||||
width: width*0.6,
|
||||
onChanged:DESFECHO != 'VISITA REALIZADA'?null: (value)=>setState(()=>tipoAcompanhamentoModel[index].check=value),
|
||||
onChanged:DESFECHO != 'VISITA REALIZADA' || ((tipoAcompanhamentoModel[index].subtitle=='GESTANTE' && !sexoCidadaoFeminino)
|
||||
|| (tipoAcompanhamentoModel[index].subtitle=='PUÉRPERA' && !sexoCidadaoFeminino)) ?null
|
||||
: (value){
|
||||
if(tipoVisitaModel[1].check == true){
|
||||
alerta_visita_periodica();
|
||||
}else{
|
||||
setState(()=>tipoAcompanhamentoModel[index].check=value);
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
),
|
||||
@@ -627,22 +908,31 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
TitleContainers(title: 'Outros',width: width*0.7,textAling: TextAlign.start,fontSize: 15),
|
||||
Container(
|
||||
width: width*0.7,
|
||||
height: heigth*0.22,
|
||||
child: ListView.builder(
|
||||
height: 200,
|
||||
child: outrosModel.isEmpty && widget.dados!=null?Container():ListView.builder(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemCount: ConstVariable().outrosModel.length,
|
||||
itemBuilder: (context,index){
|
||||
outrosModel.add(
|
||||
CheckModel(
|
||||
subtitle: ConstVariable().outrosModel[index],
|
||||
check: false
|
||||
)
|
||||
);
|
||||
if(widget.dados==null){
|
||||
outrosModel.add(
|
||||
CheckModel(
|
||||
cod: ConstVariable().outrosModel[index].cod,
|
||||
subtitle: ConstVariable().outrosModel[index].subtitle,
|
||||
check: false
|
||||
)
|
||||
);
|
||||
}
|
||||
return CheckBoxSubtitle(
|
||||
subtitle: outrosModel[index].subtitle,
|
||||
checkbox:outrosModel[index].check,
|
||||
width: width*0.6,
|
||||
onChanged: (value)=>setState(()=>outrosModel[index].check=value),
|
||||
onChanged: (value){
|
||||
if(tipoVisitaModel[1].check == true && index==0){
|
||||
alerta_visita_periodica();
|
||||
}else{
|
||||
setState(()=>outrosModel[index].check=value);
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
),
|
||||
@@ -671,17 +961,19 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
InputWithSubtitle(
|
||||
controller: PESO,
|
||||
subtitle: 'Peso (em Kg - 000,000)',
|
||||
// errorInput: PESO.text.isEmpty || PESO.text.length<2?'':double.parse(PESO.text.replaceAll(',', '.'))<0.5 && double.parse(PESO.text.replaceAll(',', '.'))>500?'O peso do paciente deve estar entre 0,5 e 500 kg':'',
|
||||
errorInput: '',
|
||||
labelInput: 'Peso (em Kg - 000,000)',
|
||||
widthInput: width*0.7,
|
||||
widthSubtitle: width*0.7,
|
||||
hintInput: 'Escreva aqui',
|
||||
mandatory: false,
|
||||
mandatory: true,
|
||||
enabled: true,
|
||||
maxLength: 7,
|
||||
textInputType: TextInputType.number,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
PESO.text.isEmpty || PESO.text.length<2?Container():double.parse(PESO.text.replaceAll(',', '.'))>=0.5 && double.parse(PESO.text.replaceAll(',', '.'))<=500?Container():ErrorDefault(error: 'O peso do paciente deve estar entre 0,5 e 500 kg',),
|
||||
InputWithSubtitle(
|
||||
controller: ALTURA,
|
||||
subtitle: 'Altura (em metros - 0,00)',
|
||||
@@ -696,6 +988,7 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
textInputType: TextInputType.number,
|
||||
onChanged: (v)=>setState((){}),
|
||||
),
|
||||
ALTURA.text.isEmpty || ALTURA.text.length<1?Container():double.parse(ALTURA.text.replaceAll(',', '.'))>=0.2 && double.parse(ALTURA.text.replaceAll(',', '.'))<=2.5?Container():ErrorDefault(error: 'A altura do paciente deve estar entre 0,20 e 2,5 metros.',),
|
||||
],
|
||||
)
|
||||
],
|
||||
@@ -750,6 +1043,10 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
onChanged: (value){
|
||||
setState(() {
|
||||
CBO_PROFISSIONAL = value!;
|
||||
List list = CBO_PROFISSIONAL.toString().split(' - ');
|
||||
CBO_DB = list.last;
|
||||
print('CBO_DB 1');
|
||||
print(CBO_DB);
|
||||
});
|
||||
},
|
||||
colorBorder: ColorPalette.white,
|
||||
@@ -829,21 +1126,42 @@ class _HomeVisitScreenState extends State<HomeVisitScreen> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: ()=>AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', CBO_PROFISSIONAL, CBO_PROFISSIONAL, 'add',PROCEDIMENTOS_SIGTAP,listProc),
|
||||
onTap: ()=>setState(() {
|
||||
AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', CBO_PROFISSIONAL, CBO_PROFISSIONAL, 'add',PROCEDIMENTOS_SIGTAP,listProc);
|
||||
}),
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 10.0),
|
||||
child: Container(
|
||||
height: 200,
|
||||
width: width*0.7,
|
||||
child: Row(
|
||||
child: Column(
|
||||
mainAxisAlignment:MainAxisAlignment.center ,
|
||||
children: [
|
||||
TextDefault(text: 'Procedimento',color: Colors.black,),
|
||||
Spacer(),
|
||||
IconButton(
|
||||
icon: Icon(Icons.add_circle,color: ColorPalette.blackButton),
|
||||
onPressed: (){
|
||||
Row(
|
||||
children: [
|
||||
TextDefault(text: 'Procedimento',color: Colors.black,),
|
||||
Spacer(),
|
||||
IconButton(
|
||||
icon: Icon(Icons.add_circle,color: ColorPalette.blackButton),
|
||||
onPressed: ()=>setState(() {
|
||||
AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', CBO_PROFISSIONAL, CBO_PROFISSIONAL, 'add',PROCEDIMENTOS_SIGTAP,listProc);
|
||||
}),
|
||||
)
|
||||
],
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: ()=>setState(() {
|
||||
AlertDialogDefault().otherProc(context, 'Outros Procedimentos', 'Adicionar Procedimento', CBO_PROFISSIONAL, CBO_PROFISSIONAL, 'add',PROCEDIMENTOS_SIGTAP,listProc);
|
||||
},
|
||||
}),
|
||||
child: Container(
|
||||
height: listProc.isEmpty?0:150,
|
||||
child: ListView.builder(
|
||||
itemCount: listProc.length,
|
||||
itemBuilder: (context,i){
|
||||
return Text(listProc[i]);
|
||||
},
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
@@ -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;
|
||||
|
||||
@@ -26,9 +26,12 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
|
||||
String idUsuario = '';
|
||||
String idUnidade = '';
|
||||
String nomeUnidade = '';
|
||||
int idArea = 0;
|
||||
int idMicroarea = 0;
|
||||
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 = '';
|
||||
@@ -57,6 +60,7 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
|
||||
codState = list[0]['COD_STATE'];
|
||||
codCityIbge = list[0]['COD_IBGE'];
|
||||
if(urlAPI!=''){
|
||||
print('chegou');
|
||||
dataUser();
|
||||
}
|
||||
});
|
||||
@@ -64,12 +68,18 @@ class _SyncInitScreenState extends State<SyncInitScreen> {
|
||||
|
||||
dataUser()async{
|
||||
_prefService.readCacheUnidade().then((listUnidade)async{
|
||||
print('listUnidade');
|
||||
print(listUnidade);
|
||||
_prefService.readCacheSync().then((list){
|
||||
print('datauser');
|
||||
print(list);
|
||||
foraArea = list[8];
|
||||
idArea = list[2];
|
||||
idMicroarea = list[4];
|
||||
idUnidade = listUnidade[0].toString();
|
||||
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();
|
||||
});
|
||||
@@ -79,114 +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{
|
||||
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 Tipos de Logradouros - Por favor, tente novamente!");
|
||||
}else{
|
||||
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().syncLogradouros(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||
if(value.length == 0){
|
||||
setState(()=> messageSteps = "ERRO: Erro para carregar os Logradouros - Por favor, tente novamente!");
|
||||
}else{
|
||||
setState(()=> messageSteps = "Etapa 4 de 10 - Gravando os Logradouros no Aplicativo");
|
||||
await DbSqliteSync().insertLogradouros(value).then((value)async{
|
||||
countProg = 0.4;
|
||||
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");
|
||||
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,idArea,idMicroarea,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");
|
||||
await DbSqliteSync().insertCidadaos(value,'sync','').then((value)async{
|
||||
countProg = 0.8;
|
||||
setState(() {});
|
||||
await ApiDataSync().syncCadastrosDomiciliares(urlAPI,mode,nameCityApi,user,idUnidade,idArea,idMicroarea,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");
|
||||
await DbSqliteSync().insertCadastrosDomiciliares(value,'sync',0,0,'').then((value)async{
|
||||
countProg = 0.9;
|
||||
setState(() {});
|
||||
await ApiDataSync().syncCadastrosIndividuais(urlAPI,mode,nameCityApi,user,idUnidade,idArea,idMicroarea,foraArea).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,idArea,idMicroarea).then((value)async{
|
||||
countProg = 1;
|
||||
setState(() {});
|
||||
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=>HomeScreen(username: user)));
|
||||
});
|
||||
});
|
||||
}
|
||||
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 Tipos de Logradouros - Por favor, tente novamente!");
|
||||
}else{
|
||||
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().syncLogradouros(urlAPI,mode,nameCityApi,user).then((value)async{
|
||||
if(value.length == 0){
|
||||
setState(()=> messageSteps = "ERRO: Erro para carregar os Logradouros - Por favor, tente novamente!");
|
||||
}else{
|
||||
setState(()=> messageSteps = "Etapa 4 de 10 - Gravando os Logradouros no Aplicativo");
|
||||
await DbSqliteSync().insertLogradouros(value).then((value)async{
|
||||
countProg = 0.4;
|
||||
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");
|
||||
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)));
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -14,9 +14,10 @@ class ApiDataPost{
|
||||
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();
|
||||
|
||||
@@ -56,7 +56,8 @@ 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);
|
||||
@@ -64,14 +65,16 @@ class ApiDataSync{
|
||||
}
|
||||
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;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:rkm/service/db/db_sqlite_load.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
|
||||
@@ -24,21 +25,20 @@ 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, int idUsuario)async{
|
||||
Database db = await DbSqliteLoad().intialDB();
|
||||
@@ -83,6 +83,19 @@ class DBQuerys{
|
||||
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);
|
||||
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'");
|
||||
@@ -113,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";
|
||||
@@ -154,6 +183,13 @@ 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"';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -33,10 +31,10 @@ class DbSqliteLoad{
|
||||
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, 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 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);');
|
||||
@@ -58,6 +56,7 @@ class DbSqliteLoad{
|
||||
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();
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -174,6 +175,10 @@ class DbSqliteSync{
|
||||
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;
|
||||
@@ -193,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'],
|
||||
@@ -505,11 +511,15 @@ class DbSqliteSync{
|
||||
}
|
||||
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();
|
||||
@@ -522,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();
|
||||
@@ -540,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{
|
||||
@@ -562,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, '')}]';
|
||||
@@ -578,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}',
|
||||
};
|
||||
|
||||
@@ -18,24 +18,32 @@ class PrefService{
|
||||
|
||||
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 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.setInt('idEquipe',equipe.ID_EQUIPE);
|
||||
_preferences.setString('ine',equipe.INE);
|
||||
_preferences.setInt('area',equipe.AREA);
|
||||
_preferences.setInt('idAtbMicroarea',equipe.ID_ATB_MICROAREA);
|
||||
_preferences.setInt('idAtbArea',equipe.ID_ATB_AREA);
|
||||
_preferences.setInt('microarea',equipe.MICROAREA);
|
||||
_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();
|
||||
@@ -44,22 +52,11 @@ class PrefService{
|
||||
_preferences.setString('city', city);
|
||||
_preferences.setString('mode', mode);
|
||||
}
|
||||
|
||||
Future readCacheIdUsername(String username) async{
|
||||
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
||||
var username = _preferences.getString('username');
|
||||
return username;
|
||||
}
|
||||
Future readCacheUnidade() async{
|
||||
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
||||
var idUnidade = _preferences.getString('idUnidade');
|
||||
var nomeUnidade = _preferences.getString('nomeUnidade');
|
||||
List list =[
|
||||
idUnidade,
|
||||
nomeUnidade,
|
||||
];
|
||||
return list;
|
||||
}
|
||||
Future readCacheModel(String user,String password,String city,String mode) async{
|
||||
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
||||
String? username = _preferences.getString('username');
|
||||
@@ -76,22 +73,24 @@ class PrefService{
|
||||
}
|
||||
Future readCacheSync() async{
|
||||
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
||||
int? area = _preferences.getInt('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? idAtbMicroarea = _preferences.getInt('idAtbMicroarea');
|
||||
int? idAtbArea = _preferences.getInt('idAtbArea');
|
||||
int? microarea = _preferences.getInt('microarea');
|
||||
int? idProfissional = _preferences.getInt('idProfissional');
|
||||
int? ativo = _preferences.getInt('ativo');
|
||||
bool? foraArea = _preferences.getBool('foraArea');
|
||||
List list =[
|
||||
AREA_ID,
|
||||
AREA_DESCRICAO,
|
||||
MICROAREA_ID,
|
||||
MICROAREA_DESCRICAO,
|
||||
idEquipe,
|
||||
idUnidade,
|
||||
ine,
|
||||
idAtbArea,
|
||||
area,
|
||||
idAtbMicroarea,
|
||||
microarea,
|
||||
idProfissional,
|
||||
ativo,
|
||||
foraArea
|
||||
@@ -99,8 +98,13 @@ class PrefService{
|
||||
return list;
|
||||
}
|
||||
|
||||
Future removeCache(String idUsuario) async{
|
||||
Future removeCache() async{
|
||||
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
||||
_preferences.remove('username');
|
||||
}
|
||||
Future removeUnidade() async{
|
||||
SharedPreferences _preferences = await SharedPreferences.getInstance();
|
||||
_preferences.remove('idUnidade');
|
||||
_preferences.remove('nomeUnidade');
|
||||
}
|
||||
}
|
||||
@@ -6,14 +6,14 @@ 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/service_home_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 {
|
||||
@@ -85,6 +85,41 @@ class AlertDialogDefault {
|
||||
);
|
||||
}
|
||||
|
||||
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 = [
|
||||
@@ -95,7 +130,7 @@ class AlertDialogDefault {
|
||||
// 'Ficha Complementar',
|
||||
// 'Marcadores de Consumo',
|
||||
// 'Procedimentos',
|
||||
'Visita domiciliar',
|
||||
'Visita Domiciliar',
|
||||
];
|
||||
|
||||
double width = MediaQuery.of(context).size.width;
|
||||
@@ -126,12 +161,12 @@ class AlertDialogDefault {
|
||||
if(index==0){
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder:(context) => ServiceHomeScreen(name: name,username: username,)),
|
||||
MaterialPageRoute(builder:(context) => AtendimentoDomiciliarTela(name: name,username: username,dados: null,)),
|
||||
);
|
||||
}else if(index == 1){
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder:(context) => HomeVisitScreen(name: name,username: username,)),
|
||||
MaterialPageRoute(builder:(context) => VisitaDomiciliarTela(name: name,username: username,dados: null,)),
|
||||
);
|
||||
// Navigator.push(
|
||||
// context,
|
||||
@@ -165,7 +200,7 @@ class AlertDialogDefault {
|
||||
}else if (index==7){
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder:(context) => HomeVisitScreen(name: name,username: username,)),
|
||||
MaterialPageRoute(builder:(context) => VisitaDomiciliarTela(name: name,username: username,dados: null,)),
|
||||
);
|
||||
}
|
||||
},
|
||||
@@ -458,7 +493,7 @@ class AlertDialogDefault {
|
||||
String? selectProfessionals,
|
||||
String? selectCBO,
|
||||
String add,
|
||||
List list,
|
||||
List listProcProfissional,
|
||||
List listProc,
|
||||
) {
|
||||
|
||||
@@ -498,22 +533,22 @@ class AlertDialogDefault {
|
||||
}),
|
||||
select: selectProfessionals,
|
||||
title: '',
|
||||
list: list,
|
||||
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,
|
||||
// )
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -522,7 +557,7 @@ class AlertDialogDefault {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
TitleContainers(title: 'Procedimentos'),
|
||||
list.length!=0
|
||||
listProcProfissional.length!=0
|
||||
?Container(
|
||||
width: width*0.8,
|
||||
height: listProc.length*70,
|
||||
@@ -548,6 +583,7 @@ class AlertDialogDefault {
|
||||
onPressed: () =>
|
||||
setState(() {
|
||||
listProc.removeAt(index);
|
||||
setState((){});
|
||||
}),
|
||||
)
|
||||
],
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_typeahead/flutter_typeahead.dart';
|
||||
import 'package:rkm/models/pais_modelo.dart';
|
||||
import 'package:rkm/widgets/text_default.dart';
|
||||
import '../config/color_palette.dart';
|
||||
import '../config/const_variable.dart';
|
||||
import 'input_search_text.dart';
|
||||
|
||||
class DropDownButtonComPesquisaPaises extends StatelessWidget {
|
||||
var onChanged;
|
||||
|
||||
@@ -46,7 +46,7 @@ class DropDownEquipe extends StatelessWidget {
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 0.0),
|
||||
child: TextDefault(
|
||||
text: 'INE: ${value.INE} / Área: ${value.AREA} - Microárea : ${value.MICROAREA==null?'':value.MICROAREA}',
|
||||
text: 'INE: ${value.INE} / Área: ${value.AREA} ${value.MICROAREA==null?'':'- Microárea : ${value.MICROAREA}'}',
|
||||
maxLines: 2,
|
||||
fontSize: fontSize,
|
||||
color: Colors.black,
|
||||
|
||||
87
lib/widgets/dropdown_etnia_indigena.dart
Normal 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
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
12
macos/RunnerTests/RunnerTests.swift
Normal file
@@ -0,0 +1,12 @@
|
||||
import Cocoa
|
||||
import FlutterMacOS
|
||||
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.
|
||||
}
|
||||
|
||||
}
|
||||
88
pubspec.lock
@@ -37,10 +37,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: brasil_fields
|
||||
sha256: c36edf02897d3470ebfff6f9fafc0e87a648c7d3e3f0a2386fe72fda7e9c6437
|
||||
sha256: "6c802e8629d8e5c81af32d611d1cf260d7ecc86b99e27c127f64490bf1606256"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.0"
|
||||
version: "1.15.0"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -217,10 +217,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: get
|
||||
sha256: "2ba20a47c8f1f233bed775ba2dd0d3ac97b4cf32fc17731b3dfc672b06b0e92a"
|
||||
sha256: e4e7335ede17452b391ed3b2ede016545706c01a02292a6c97619705e7d2a85e
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.6.5"
|
||||
version: "4.6.6"
|
||||
http:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -241,10 +241,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: intl
|
||||
sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d"
|
||||
sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.18.1"
|
||||
version: "0.19.0"
|
||||
js:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -253,6 +253,30 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.7"
|
||||
leak_tracker:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.4"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.3"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_testing
|
||||
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.1"
|
||||
line_icons:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -269,30 +293,38 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
mask_text_input_formatter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: mask_text_input_formatter
|
||||
sha256: "978c58ec721c25621ceb468e633f4eef64b64d45424ac4540e0565d4f7c800cd"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.9.0"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
|
||||
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.16"
|
||||
version: "0.12.16+1"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
|
||||
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.0"
|
||||
version: "0.8.0"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
|
||||
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
version: "1.12.0"
|
||||
package_info_plus:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -313,10 +345,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path
|
||||
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
|
||||
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.8.3"
|
||||
version: "1.9.0"
|
||||
path_provider_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -385,10 +417,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: pointer_interceptor_web
|
||||
sha256: "9386e064097fd16419e935c23f08f35b58e6aaec155dd39bd6a003b88f9c14b4"
|
||||
sha256: "7a7087782110f8c1827170660b09f8aa893e0e9a61431dbbe2ac3fc482e8c044"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.10.1+2"
|
||||
version: "0.10.2+1"
|
||||
pointycastle:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -534,10 +566,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
|
||||
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.1"
|
||||
version: "0.7.0"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -554,14 +586,22 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.4"
|
||||
web:
|
||||
vm_service:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
|
||||
name: vm_service
|
||||
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.3.0"
|
||||
version: "14.2.1"
|
||||
web:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: web
|
||||
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.1"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -579,5 +619,5 @@ packages:
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
sdks:
|
||||
dart: ">=3.2.3 <4.0.0"
|
||||
flutter: ">=3.16.0"
|
||||
dart: ">=3.3.0 <4.0.0"
|
||||
flutter: ">=3.19.0"
|
||||
|
||||
21
pubspec.yaml
@@ -1,8 +1,21 @@
|
||||
name: rkm
|
||||
description: RKM AB 2.0.
|
||||
#Cadastro e edição do Cadastro do Cidadão, Cadastro Individual, Cadastro Domiciliar e Visita Domiciliar
|
||||
#versão 1.0.6+5 finalizada dia 19/02/2024
|
||||
#versão 1.0.6+5 finalizada dia 18/03/2024
|
||||
#versão 1.0.10+11 AJUSTES PARA A SINCRONIZAÇÃO DIA 22/08/2024
|
||||
#versão 1.0.11+12 AJUSTES PARA NÃO EXIBIR MICROAREA NULL, E AJUSTE DADOS FORA DE AREA DIA 23/08/2024
|
||||
#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. 26/08/2024
|
||||
#versão 1.0.13+14 SETSTATE SALVAR DADOS CIDADAO E EDITAR E EXCLUIR ATENDICMENTO E VISITA. 27/08/2024
|
||||
#versão 1.0.13+14 EDITAR E EXCLUIR VISITA DOMICILIAR E ALTERADA PARA ZERO SEM FORA DE AREA E UM PARA FORA DE AREA. 28/08/2024
|
||||
#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
|
||||
#versão 1.0.15+16 AJUSTE DAS RESTRIÇÕES DE VISITAS PERIODICAS, ENVIO DE PESO E ALTURA E DO LOADING. 30/08/2024
|
||||
#versão 1.0.15+16 AJUSTE DOS CODIGOS, ENVIO DE PESO E ALTURA E SINCRONIZADO QUE NAO EXIBIA. 02/09/2024
|
||||
#versão 1.0.16+17 AJUSTE DA COMPETENCIA. 10/09/2024
|
||||
#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
|
||||
|
||||
publish_to: 'none'
|
||||
version: 1.0.6+5
|
||||
version: 1.0.17+18
|
||||
|
||||
environment:
|
||||
sdk: '>=3.2.3 <4.0.0'
|
||||
@@ -17,12 +30,14 @@ dependencies:
|
||||
line_icons: ^2.0.1
|
||||
http:
|
||||
gainer_crypto: ^0.0.6
|
||||
mask_text_input_formatter: ^2.3.0
|
||||
sqflite: ^2.0.0+3
|
||||
shared_preferences: ^2.0.15
|
||||
get:
|
||||
brasil_fields:
|
||||
get: ^4.6.6
|
||||
brasil_fields: ^1.15.0
|
||||
# lista com pesquisa
|
||||
flutter_typeahead: ^5.2.0
|
||||
web: ^0.5.1
|
||||
|
||||
flutter_localizations:
|
||||
sdk: flutter
|
||||
|
||||
@@ -18,41 +18,21 @@
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
|
||||
<meta name="description" content="RKM AB 2.0.">
|
||||
<meta name="description" content="A new Flutter project.">
|
||||
|
||||
<!-- iOS meta tags & icons -->
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-title" content="rkm">
|
||||
<meta name="apple-mobile-web-app-title" content="rkmmobile">
|
||||
<link rel="apple-touch-icon" href="icons/Icon-192.png">
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="icon" type="image/png" href="favicon.png"/>
|
||||
|
||||
<title>rkm</title>
|
||||
<title>rkmmobile</title>
|
||||
<link rel="manifest" href="manifest.json">
|
||||
|
||||
<script>
|
||||
// The value below is injected by flutter build, do not touch.
|
||||
var serviceWorkerVersion = null;
|
||||
</script>
|
||||
<!-- This script adds the flutter initialization JS code -->
|
||||
<script src="flutter.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
window.addEventListener('load', function(ev) {
|
||||
// Download main.dart.js
|
||||
_flutter.loader.loadEntrypoint({
|
||||
serviceWorker: {
|
||||
serviceWorkerVersion: serviceWorkerVersion,
|
||||
}
|
||||
}).then(function(engineInitializer) {
|
||||
return engineInitializer.initializeEngine();
|
||||
}).then(function(appRunner) {
|
||||
return appRunner.runApp();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<script src="flutter_bootstrap.js" async></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "rkm",
|
||||
"short_name": "rkm",
|
||||
"name": "rkmmobile",
|
||||
"short_name": "rkmmobile",
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"background_color": "#0175C2",
|
||||
"theme_color": "#0175C2",
|
||||
"description": "RKM AB 2.0.",
|
||||
"description": "A new Flutter project.",
|
||||
"orientation": "portrait-primary",
|
||||
"prefer_related_applications": false,
|
||||
"icons": [
|
||||
|
||||