diff --git a/android/app/build.gradle b/android/app/build.gradle
index 0a094fa..45197c6 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -6,8 +6,8 @@ android {
applicationId "com.mermsemr.providers"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
- versionCode 1033
- versionName "1.0.33"
+ versionCode 1034
+ versionName "1.0.34"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle
index 837cd45..2519da4 100644
--- a/android/app/capacitor.build.gradle
+++ b/android/app/capacitor.build.gradle
@@ -12,7 +12,7 @@ dependencies {
}
-
+apply from: "../../node_modules/cordova-plugin-qrscanner/src/android/qrscanner.gradle"
if (hasProperty('postBuildExtras')) {
postBuildExtras()
diff --git a/android/app/src/main/res/xml/config.xml b/android/app/src/main/res/xml/config.xml
index 813a010..8f9dbf3 100644
--- a/android/app/src/main/res/xml/config.xml
+++ b/android/app/src/main/res/xml/config.xml
@@ -19,5 +19,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 5a6e626..59c299a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2401,6 +2401,14 @@
"@types/cordova": "^0.0.34"
}
},
+ "@ionic-native/qr-scanner": {
+ "version": "5.30.0",
+ "resolved": "https://registry.npmjs.org/@ionic-native/qr-scanner/-/qr-scanner-5.30.0.tgz",
+ "integrity": "sha512-NOyj1NAMrbwDwiVWZ2hD5b2RsEwyKwRtI3D6fZiuoecakaGGNC4qjk+LdGqXdps7Uf3UF6OLnptX2p+LUFSlbA==",
+ "requires": {
+ "@types/cordova": "^0.0.34"
+ }
+ },
"@ionic-native/splash-screen": {
"version": "5.29.0",
"resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-5.29.0.tgz",
@@ -4636,6 +4644,15 @@
"resolved": "https://registry.npmjs.org/cordova-plugin-file/-/cordova-plugin-file-6.0.2.tgz",
"integrity": "sha512-m7cughw327CjONN/qjzsTpSesLaeybksQh420/gRuSXJX5Zt9NfgsSbqqKDon6jnQ9Mm7h7imgyO2uJ34XMBtA=="
},
+ "cordova-plugin-qrscanner": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/cordova-plugin-qrscanner/-/cordova-plugin-qrscanner-3.0.1.tgz",
+ "integrity": "sha512-xrwOP3nD+VmRSiV0w7chZ5PLw2YwpI9vtLdeoGNYLLzmmjjYbyIof+x9vOEOgjtwrg9S61rukmOZhQAmkzaosA==",
+ "requires": {
+ "qrcode-reader": "^1.0.4",
+ "webrtc-adapter": "^3.1.4"
+ }
+ },
"core-js": {
"version": "3.6.5",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
@@ -11085,6 +11102,11 @@
"integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
"dev": true
},
+ "qrcode-reader": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/qrcode-reader/-/qrcode-reader-1.0.4.tgz",
+ "integrity": "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ=="
+ },
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
@@ -11786,6 +11808,11 @@
}
}
},
+ "sdp": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/sdp/-/sdp-1.5.4.tgz",
+ "integrity": "sha1-jgOPbdsUvXZa4fS1IW4SCUUR4NA="
+ },
"select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
@@ -14731,6 +14758,14 @@
"webpack-sources": "^1.3.0"
}
},
+ "webrtc-adapter": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-3.4.3.tgz",
+ "integrity": "sha1-tjYGLu6abvFYrNDYUBtnhDS1bxY=",
+ "requires": {
+ "sdp": "^1.5.0"
+ }
+ },
"websocket-driver": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz",
diff --git a/package.json b/package.json
index 0b4f76f..de501a1 100644
--- a/package.json
+++ b/package.json
@@ -26,6 +26,7 @@
"@ionic-native/core": "^5.0.0",
"@ionic-native/device": "^5.29.0",
"@ionic-native/http": "^5.29.0",
+ "@ionic-native/qr-scanner": "^5.30.0",
"@ionic-native/splash-screen": "^5.0.0",
"@ionic-native/status-bar": "^5.0.0",
"@ionic/angular": "^5.4.4",
@@ -33,6 +34,7 @@
"cordova-plugin-calendar": "^5.1.5",
"cordova-plugin-device": "^2.0.3",
"cordova-plugin-file": "^6.0.2",
+ "cordova-plugin-qrscanner": "^3.0.1",
"ionic2-calendar": "^0.6.6",
"rxjs": "^6.5.5",
"tslib": "^2.0.0",
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 756b5a9..e0ca083 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -15,6 +15,7 @@ import { HttpClientModule } from '@angular/common/http'
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { NgCalendarModule } from 'ionic2-calendar';
+import { QRScanner, QRScannerStatus } from '@ionic-native/qr-scanner/ngx';
@NgModule({
@@ -27,6 +28,7 @@ import { NgCalendarModule } from 'ionic2-calendar';
providers: [
StatusBar,
SplashScreen,
+ QRScanner,
Calendar,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
diff --git a/src/app/merms-dash/merms-dash.page.html b/src/app/merms-dash/merms-dash.page.html
index a140970..d366e8d 100644
--- a/src/app/merms-dash/merms-dash.page.html
+++ b/src/app/merms-dash/merms-dash.page.html
@@ -37,8 +37,8 @@
- {{type.appt}} {{type.gender}} , {{type.age}} yrs
- {{type.firstname}} {{type.lastname}}
+ {{type.appt}}
+ {{type.firstname}} {{type.lastname}} -{{type.gender}} {{type.age}} yrs
{{type.reason}}
diff --git a/src/app/modal/add-practice/add-practice.page.html b/src/app/modal/add-practice/add-practice.page.html
index d9d23e4..3f5ae97 100644
--- a/src/app/modal/add-practice/add-practice.page.html
+++ b/src/app/modal/add-practice/add-practice.page.html
@@ -1,35 +1,35 @@
- Add Practice
+ Add Practice
- Close
+ Close
-
+
-
-
+
+
-
+
-
+
Add
-
- Go to your account at https://provider.mermsemr.com and enable your app access with your needed permissions.
+ or
+
+ Scan QR Code
- Close
-
+
\ No newline at end of file
diff --git a/src/app/modal/add-practice/add-practice.page.ts b/src/app/modal/add-practice/add-practice.page.ts
index 86e9d2e..304cc7d 100644
--- a/src/app/modal/add-practice/add-practice.page.ts
+++ b/src/app/modal/add-practice/add-practice.page.ts
@@ -1,5 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular';
+import { QRScanner, QRScannerStatus } from '@ionic-native/qr-scanner/ngx';
@Component({
selector: 'app-add-practice',
@@ -8,11 +9,11 @@ import { ModalController } from '@ionic/angular';
})
export class AddPracticePage implements OnInit {
- constructor(private modalCtrl:ModalController) { }
+ constructor(private modalCtrl: ModalController, private qrScanner: QRScanner) { }
ngOnInit() {
}
-
+
dismiss() {
// using the injected ModalController this page
// can "dismiss" itself and optionally pass back data
@@ -20,4 +21,33 @@ export class AddPracticePage implements OnInit {
'dismissed': true
});
}
+
+ goScannerStart() {
+ // Optionally request the permission early
+ this.qrScanner.prepare()
+ .then((status: QRScannerStatus) => {
+ if (status.authorized) {
+ // camera permission was granted
+
+
+ // start scanning
+ let scanSub = this.qrScanner.scan().subscribe((text: string) => {
+ console.log('Scanned something', text);
+
+ this.qrScanner.hide(); // hide camera preview
+ scanSub.unsubscribe(); // stop scanning
+ });
+
+ } else if (status.denied) {
+ // camera permission was permanently denied
+ // you must use QRScanner.openSettings() method to guide the user to the settings page
+ // then they can grant the permission from there
+ } else {
+ // permission was denied, but not permanently. You can ask for permission again at a later time.
+ }
+ })
+ .catch((e: any) => console.log('Error is', e));
+
+ }
+
}
diff --git a/src/assets/imgs/merms-addpractice.jpg b/src/assets/imgs/merms-addpractice.jpg
new file mode 100644
index 0000000..35cfe27
Binary files /dev/null and b/src/assets/imgs/merms-addpractice.jpg differ