@things-factory/qc 5.0.0-alpha.13 → 5.0.0-alpha.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-server/controllers/data-use-case-qc.js +37 -0
- package/dist-server/controllers/data-use-case-qc.js.map +1 -0
- package/dist-server/controllers/index.js +17 -0
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/index.js +2 -2
- package/dist-server/index.js.map +1 -1
- package/package.json +6 -6
- package/server/controllers/data-use-case-qc.ts +40 -0
- package/server/controllers/index.ts +1 -0
- package/server/index.ts +3 -3
- package/dist-server/controllers//bqc-data-spec.js +0 -18
- package/dist-server/controllers//bqc-data-spec.js.map +0 -1
- package/dist-server/controllers/qc-units.js +0 -19
- package/dist-server/controllers/qc-units.js.map +0 -1
- package/server/controllers//bqc-data-spec.ts +0 -14
- package/server/controllers/qc-units.ts +0 -18
@@ -0,0 +1,37 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DataUseCaseQC = void 0;
|
4
|
+
class DataUseCaseQC {
|
5
|
+
getSpecification() {
|
6
|
+
return {
|
7
|
+
name: 'QC',
|
8
|
+
description: 'Quality Control Data Spec',
|
9
|
+
help: '',
|
10
|
+
specs: [
|
11
|
+
{
|
12
|
+
type: 'qc-limits' /* 'A value which seperates acceptability from unacceptability' */,
|
13
|
+
label: 'pass-limits',
|
14
|
+
name: 'passLimits'
|
15
|
+
}
|
16
|
+
]
|
17
|
+
};
|
18
|
+
}
|
19
|
+
evaluate(spec, values) {
|
20
|
+
const { minimum, maximum, acceptables } = spec['passLimits'];
|
21
|
+
for (let i = 0; i < values.length; i++) {
|
22
|
+
const value = values[i];
|
23
|
+
if (typeof minimum !== 'undefined' && value < minimum) {
|
24
|
+
return { oos: true, ooc: true };
|
25
|
+
}
|
26
|
+
if (typeof maximum !== 'undefined' && value > maximum) {
|
27
|
+
return { oos: true, ooc: true };
|
28
|
+
}
|
29
|
+
if (typeof acceptables !== 'undefined' && acceptables.includes(value)) {
|
30
|
+
return { oos: true, ooc: true };
|
31
|
+
}
|
32
|
+
}
|
33
|
+
return { oos: false, ooc: false };
|
34
|
+
}
|
35
|
+
}
|
36
|
+
exports.DataUseCaseQC = DataUseCaseQC;
|
37
|
+
//# sourceMappingURL=data-use-case-qc.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"data-use-case-qc.js","sourceRoot":"","sources":["../../server/controllers/data-use-case-qc.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IACxB,gBAAgB;QACd,OAAO;YACL,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,2BAA2B;YACxC,IAAI,EAAE,EAAE;YACR,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,WAAW,CAAC,kEAAkE;oBACpF,KAAK,EAAE,aAAa;oBACpB,IAAI,EAAE,YAAY;iBACnB;aACF;SACF,CAAA;IACH,CAAC;IAED,QAAQ,CAAC,IAAS,EAAE,MAAa;QAC/B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;QAE5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YAEvB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,KAAK,GAAG,OAAO,EAAE;gBACrD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;aAChC;YAED,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,KAAK,GAAG,OAAO,EAAE;gBACrD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;aAChC;YAED,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACrE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;aAChC;SACF;QAED,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IACnC,CAAC;CACF;AArCD,sCAqCC"}
|
@@ -1 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./data-use-case-qc"), exports);
|
1
18
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/controllers/index.ts"],"names":[],"mappings":""}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/controllers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC"}
|
package/dist-server/index.js
CHANGED
@@ -18,8 +18,8 @@ __exportStar(require("./migrations"), exports);
|
|
18
18
|
__exportStar(require("./middlewares"), exports);
|
19
19
|
require("./routes");
|
20
20
|
const dataset_1 = require("@things-factory/dataset");
|
21
|
-
const
|
21
|
+
const controllers_1 = require("./controllers");
|
22
22
|
process.on('bootstrap-module-start', async ({ app, config, schema }) => {
|
23
|
-
dataset_1.
|
23
|
+
dataset_1.DataUseCase.registerUseCase('QC', new controllers_1.DataUseCaseQC());
|
24
24
|
});
|
25
25
|
//# sourceMappingURL=index.js.map
|
package/dist-server/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,gDAA6B;AAE7B,oBAAiB;AAEjB,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,gDAA6B;AAE7B,oBAAiB;AAEjB,qDAAqD;AACrD,+CAA6C;AAE7C,OAAO,CAAC,EAAE,CAAC,wBAA+B,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAO,EAAE,EAAE;IACjF,qBAAW,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,2BAAa,EAAE,CAAC,CAAA;AACxD,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@things-factory/qc",
|
3
|
-
"version": "5.0.0-alpha.
|
3
|
+
"version": "5.0.0-alpha.14",
|
4
4
|
"main": "dist-server/index.js",
|
5
5
|
"browser": "client/index.js",
|
6
6
|
"things-factory": true,
|
@@ -24,10 +24,10 @@
|
|
24
24
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
25
25
|
},
|
26
26
|
"dependencies": {
|
27
|
-
"@operato/dataset": "^1.0.0-alpha.
|
28
|
-
"@operato/qc": "^1.0.0-alpha.
|
29
|
-
"@things-factory/dataset": "^5.0.0-alpha.
|
30
|
-
"@things-factory/shell": "^5.0.0-alpha.
|
27
|
+
"@operato/dataset": "^1.0.0-alpha.34",
|
28
|
+
"@operato/qc": "^1.0.0-alpha.34",
|
29
|
+
"@things-factory/dataset": "^5.0.0-alpha.14",
|
30
|
+
"@things-factory/shell": "^5.0.0-alpha.14"
|
31
31
|
},
|
32
|
-
"gitHead": "
|
32
|
+
"gitHead": "e64e66b147eca1d3219fed7d9764fe2a221a5569"
|
33
33
|
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { DataItemSpecSet, DataUseCase, EvaluationResult } from '@things-factory/dataset'
|
2
|
+
|
3
|
+
export class DataUseCaseQC implements DataUseCase {
|
4
|
+
getSpecification(): DataItemSpecSet {
|
5
|
+
return {
|
6
|
+
name: 'QC',
|
7
|
+
description: 'Quality Control Data Spec',
|
8
|
+
help: '',
|
9
|
+
specs: [
|
10
|
+
{
|
11
|
+
type: 'qc-limits' /* 'A value which seperates acceptability from unacceptability' */,
|
12
|
+
label: 'pass-limits',
|
13
|
+
name: 'passLimits'
|
14
|
+
}
|
15
|
+
]
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
evaluate(spec: any, values: any[]): EvaluationResult {
|
20
|
+
const { minimum, maximum, acceptables } = spec['passLimits']
|
21
|
+
|
22
|
+
for (let i = 0; i < values.length; i++) {
|
23
|
+
const value = values[i]
|
24
|
+
|
25
|
+
if (typeof minimum !== 'undefined' && value < minimum) {
|
26
|
+
return { oos: true, ooc: true }
|
27
|
+
}
|
28
|
+
|
29
|
+
if (typeof maximum !== 'undefined' && value > maximum) {
|
30
|
+
return { oos: true, ooc: true }
|
31
|
+
}
|
32
|
+
|
33
|
+
if (typeof acceptables !== 'undefined' && acceptables.includes(value)) {
|
34
|
+
return { oos: true, ooc: true }
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
return { oos: false, ooc: false }
|
39
|
+
}
|
40
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './data-use-case-qc'
|
package/server/index.ts
CHANGED
@@ -3,9 +3,9 @@ export * from './middlewares'
|
|
3
3
|
|
4
4
|
import './routes'
|
5
5
|
|
6
|
-
import {
|
7
|
-
import {
|
6
|
+
import { DataUseCase } from '@things-factory/dataset'
|
7
|
+
import { DataUseCaseQC } from './controllers'
|
8
8
|
|
9
9
|
process.on('bootstrap-module-start' as any, async ({ app, config, schema }: any) => {
|
10
|
-
|
10
|
+
DataUseCase.registerUseCase('QC', new DataUseCaseQC())
|
11
11
|
})
|
@@ -1,18 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.QC_DATA_SPEC = void 0;
|
4
|
-
exports.QC_DATA_SPEC = {
|
5
|
-
name: 'QC',
|
6
|
-
description: 'Quality Control Data Spec',
|
7
|
-
help: '',
|
8
|
-
specItems: [
|
9
|
-
{
|
10
|
-
type: 'qc-limits' /* A value which seperates acceptability from unacceptability */,
|
11
|
-
label: 'pass-limits',
|
12
|
-
name: 'passLimits',
|
13
|
-
placeholder: '품질 관리를 위해 한계 이내로 관리되어야 하는 이론적 한계기준',
|
14
|
-
property: {}
|
15
|
-
}
|
16
|
-
]
|
17
|
-
};
|
18
|
-
//# sourceMappingURL=%08qc-data-spec.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"\bqc-data-spec.js","sourceRoot":"","sources":["../../server/controllers/\bqc-data-spec.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,2BAA2B;IACxC,IAAI,EAAE,EAAE;IACR,SAAS,EAAE;QACT;YACE,IAAI,EAAE,WAAW,CAAC,gEAAgE;YAClF,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,EAAE;SACb;KACF;CACF,CAAA"}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
const CCP_UNITS = [
|
2
|
-
'Temperature',
|
3
|
-
'Time',
|
4
|
-
'Viscosity',
|
5
|
-
'pH',
|
6
|
-
'Flow rate',
|
7
|
-
'Available Chlorine',
|
8
|
-
'Titratable acidity',
|
9
|
-
'Water activity',
|
10
|
-
'Preservative concentrations',
|
11
|
-
'Humidity',
|
12
|
-
'Salt concentration',
|
13
|
-
'Sensory information such as aroma and visual appearance',
|
14
|
-
'Moisture level',
|
15
|
-
'Physical dimensions',
|
16
|
-
'Line Speed',
|
17
|
-
'Weight'
|
18
|
-
];
|
19
|
-
//# sourceMappingURL=qc-units.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"qc-units.js","sourceRoot":"","sources":["../../server/controllers/qc-units.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG;IAChB,aAAa;IACb,MAAM;IACN,WAAW;IACX,IAAI;IACJ,WAAW;IACX,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,6BAA6B;IAC7B,UAAU;IACV,oBAAoB;IACpB,yDAAyD;IACzD,gBAAgB;IAChB,qBAAqB;IACrB,YAAY;IACZ,QAAQ;CACT,CAAA"}
|
@@ -1,14 +0,0 @@
|
|
1
|
-
export const QC_DATA_SPEC = {
|
2
|
-
name: 'QC',
|
3
|
-
description: 'Quality Control Data Spec',
|
4
|
-
help: '',
|
5
|
-
specItems: [
|
6
|
-
{
|
7
|
-
type: 'qc-limits' /* A value which seperates acceptability from unacceptability */,
|
8
|
-
label: 'pass-limits',
|
9
|
-
name: 'passLimits',
|
10
|
-
placeholder: '품질 관리를 위해 한계 이내로 관리되어야 하는 이론적 한계기준',
|
11
|
-
property: {}
|
12
|
-
}
|
13
|
-
]
|
14
|
-
}
|
@@ -1,18 +0,0 @@
|
|
1
|
-
const CCP_UNITS = [
|
2
|
-
'Temperature',
|
3
|
-
'Time',
|
4
|
-
'Viscosity',
|
5
|
-
'pH',
|
6
|
-
'Flow rate',
|
7
|
-
'Available Chlorine',
|
8
|
-
'Titratable acidity',
|
9
|
-
'Water activity',
|
10
|
-
'Preservative concentrations',
|
11
|
-
'Humidity',
|
12
|
-
'Salt concentration',
|
13
|
-
'Sensory information such as aroma and visual appearance',
|
14
|
-
'Moisture level',
|
15
|
-
'Physical dimensions',
|
16
|
-
'Line Speed',
|
17
|
-
'Weight'
|
18
|
-
]
|