openapi: 3.2.0 info: title: Kelowna Production TSS - QC Data API version: v1 tags: - name: TSS - QC Data paths: /TSS/BatchTestSamples/AddBatchData: post: tags: - TSS - QC Data summary: Upload a set of batch test samples and strength readings description: 'Sample request: POST /TSS/BatchTestSamples/AddBatchData { "plantId": 1, "divisionId": 1, "isMetric": true, "batchTestSamples": [ { "ticketId": "120", "mixCode": "GK42", "productionDate": "2021-03-01", "isCO2Design": true, "testCategory": "DosageRamp", "testingCondition": false, "curingCondition": true, "weatherCondition": "Windy", "loadSize": 4.5, "batchIngredients": [ { "amount": 321.56, "materialId": 1, "unit": "Kg" }, { "amount": 24, "materialId": 2, "unit": "OzPerYd3" } ], "batchStrengthReadings": [ { "compressiveStrength": 3.94, "intervalDuration": 3, "intervalType": "Day Intervals", "testNumber": 1 }, { "compressiveStrength": 4.05, "intervalDuration": 3, "intervalType": "Day Intervals", "testNumber": 2 }, { "compressiveStrength": 20, "intervalDuration": 7, "intervalType": "Day Intervals", "testNumber": 1 }, { "compressiveStrength": 35, "intervalDuration": 28, "intervalType": "Day Intervals", "testNumber": 1 } ] } ] }' requestBody: description: The batch test samples content: application/json: schema: $ref: '#/components/schemas/BatchDataInput' text/json: schema: $ref: '#/components/schemas/BatchDataInput' application/*+json: schema: $ref: '#/components/schemas/BatchDataInput' responses: '200': description: OK security: - OrcaAuth: - applicationId - roles - {} - {} operationId: postTSSBatchTestSamplesAddBatchData x-operation-id-source: derived /TSS/BatchTestSamples/Outliers: put: tags: - TSS - QC Data summary: Endpoint for marking batch test samples as outliers requestBody: description: "List of batch sample IDs and outlier reasons.\n A null reason marks samples as non outliers." content: application/json: schema: type: array items: $ref: '#/components/schemas/OutlierArgs' text/json: schema: type: array items: $ref: '#/components/schemas/OutlierArgs' application/*+json: schema: type: array items: $ref: '#/components/schemas/OutlierArgs' responses: '200': description: OK security: - OrcaAuth: - applicationId - roles - {} - {} operationId: putTSSBatchTestSamplesOutliers x-operation-id-source: derived /TSS/BatchTestSamples/EditBatchData: put: tags: - TSS - QC Data summary: Update a set of batch test samples and strength readings description: 'Sample request: PUT /TSS/BatchTestSamples/EditBatchData { "plantId": 1, "divisionId": 1, "isMetric": true, "batchTestSampleIds": [100, 124], "batchTestSamples": [ { "ticketId": "5", "mixCode": "GK42", "productionDate": "2021-03-01", "isCO2Design": true, "testCategory": "DosageRamp", "testingCondition": false, "curingCondition": true, "weatherCondition": "Windy", "loadSize": 4.5, "batchIngredients": [ { "amount": 321.56, "materialId": 1, "unit": "Kg" }, { "amount": 24, "materialId": 2, "unit": "OzPerYd3" } ], "batchStrengthReadings": [ { "compressiveStrength": 3.94, "intervalDuration": 3, "intervalType": "Days", "testNumber": 1 }, { "compressiveStrength": 4.05, "intervalDuration": 3, "intervalType": "Days", "testNumber": 2 }, { "compressiveStrength": 20, "intervalDuration": 7, "intervalType": "Days", "testNumber": 1 }, { "compressiveStrength": 35, "intervalDuration": 28, "intervalType": "Days", "testNumber": 1 } ] }, { "ticketId": "6", "mixCode": "GK42", "productionDate": "2021-03-08", "isCO2Design": true, "testCategory": "DosageRamp", "testingCondition": false, "curingCondition": true, "weatherCondition": "Windy", "loadSize": 4.5, "batchIngredients": [], "batchStrengthReadings": [ { "compressiveStrength": 20, "intervalDuration": 7, "intervalType": "Days", "testNumber": 1 }, { "compressiveStrength": 35, "intervalDuration": 28, "intervalType": "Days", "testNumber": 1 } ] } ] }' requestBody: description: The batch test samples content: application/json: schema: $ref: '#/components/schemas/BatchDataInput' text/json: schema: $ref: '#/components/schemas/BatchDataInput' application/*+json: schema: $ref: '#/components/schemas/BatchDataInput' responses: '200': description: OK security: - OrcaAuth: - applicationId - roles - {} - {} operationId: putTSSBatchTestSamplesEditBatchData x-operation-id-source: derived /TSS/BatchTestSamples/BatchTestSamplesByIds: post: tags: - TSS - QC Data summary: Returns list of batches as specified by their IDs requestBody: description: List of BatchTestSampleIds to fetch batches for content: application/json: schema: $ref: '#/components/schemas/ByBatchTestSampleIdsArgs' text/json: schema: $ref: '#/components/schemas/ByBatchTestSampleIdsArgs' application/*+json: schema: $ref: '#/components/schemas/ByBatchTestSampleIdsArgs' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/BatchTestSamplesArgs' application/json: schema: $ref: '#/components/schemas/BatchTestSamplesArgs' text/json: schema: $ref: '#/components/schemas/BatchTestSamplesArgs' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: postTSSBatchTestSamplesBatchTestSamplesByIds x-operation-id-source: derived /TSS/BatchTestSamples/BatchTestsOverviewRowCount: get: tags: - TSS - QC Data summary: An overview of batch tests, sorted by default by timestamp parameters: - name: Limit in: query description: Limit number of responses. Used for pagination. schema: type: integer format: int32 - name: Offset in: query description: Skip this many rows in the query. Used for pagination. schema: type: integer format: int32 - name: SortColumn in: query description: The name of the column to sort by. schema: type: string - name: SortOrder in: query description: The order with which to sort the table by the sort column. schema: $ref: '#/components/schemas/SortOrder' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/BatchTestOverviewArgsTableResults' application/json: schema: $ref: '#/components/schemas/BatchTestOverviewArgsTableResults' text/json: schema: $ref: '#/components/schemas/BatchTestOverviewArgsTableResults' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getTSSBatchTestSamplesBatchTestsOverviewRowCount x-operation-id-source: derived components: schemas: BatchTestOverviewArgsTableResults: type: object properties: count: type: integer format: int32 results: type: - array - 'null' items: $ref: '#/components/schemas/BatchTestOverviewArgs' additionalProperties: false BatchTestSamplesArgs: type: object properties: divisionId: type: integer format: int32 isImperial: type: boolean batchTestSamples: type: - array - 'null' items: $ref: '#/components/schemas/BatchTestSampleArgs' additionalProperties: false ConcreteTestCategory: enum: - HistoricalData - FieldData - CommissioningTrial - ThreePointCurves - CarbonCureResearch - ExternalLab - Regulatory type: string BatchIngredientArgs: type: object properties: batchIngredientId: type: integer format: int32 quantity: type: number format: double materialName: type: - string - 'null' unit: $ref: '#/components/schemas/BatchUnit' type: $ref: '#/components/schemas/MaterialType' materialId: type: - integer - 'null' format: int32 supplier: type: - string - 'null' additionalProperties: false BatchTestSampleInput: type: object properties: batchTestSampleId: type: - integer - 'null' format: int32 ticketId: type: - string - 'null' isCO2Design: type: boolean plantId: type: - integer - 'null' format: int32 mixCode: type: - string - 'null' productionDate: type: string format: date testCategory: $ref: '#/components/schemas/ConcreteTestCategory' batchIngredients: type: - array - 'null' items: $ref: '#/components/schemas/BatchIngredientInput' batchStrengthReadings: type: - array - 'null' items: $ref: '#/components/schemas/BatchStrengthReadingInput' wasTestedInField: type: - boolean - 'null' wasCuredInField: type: - boolean - 'null' cO2Dose: type: - number - 'null' format: double cO2DoseAbsolute: type: - number - 'null' format: double airContent: type: - number - 'null' format: double wcRatio: type: - number - 'null' format: double ambientTemp: type: - number - 'null' format: double cementReduction: type: - number - 'null' format: double concreteTemp: type: - number - 'null' format: double loadSize: type: - number - 'null' format: double slump: type: - number - 'null' format: double unitWeight: type: - number - 'null' format: double parentMixCode: type: - string - 'null' testingCompany: type: - string - 'null' truckNumber: type: - string - 'null' weatherCondition: type: - string - 'null' notes: type: - string - 'null' additionalProperties: false CO2DosageUnit: enum: - Litre - PercentOfCement type: string OutlierArgs: type: object properties: batchTestSampleId: type: integer format: int32 outlierReason: type: - string - 'null' additionalProperties: false BatchStrengthReadingInput: type: object properties: compressiveStrength: type: number format: double intervalDuration: type: integer format: int32 intervalType: $ref: '#/components/schemas/StrengthReadingIntervalType' testNumber: type: integer format: int32 additionalProperties: false BatchIngredientInput: type: object properties: amount: type: number format: double materialId: type: - integer - 'null' format: int32 unit: $ref: '#/components/schemas/BatchIngredientUnitInput' materialSource: type: - string - 'null' materialName: type: - string - 'null' additionalProperties: false BatchDataInput: type: object properties: divisionId: type: integer format: int32 isMetric: type: boolean previousBatchTestSampleIds: type: - array - 'null' items: type: integer format: int32 batchTestSamples: type: - array - 'null' items: $ref: '#/components/schemas/BatchTestSampleInput' additionalProperties: false StrengthReadingArgs: type: object properties: batchStrength: type: number format: double batchIntervalDay: type: number format: double batchIntervalHour: type: number format: double testNumber: type: integer format: int32 additionalProperties: false BatchPropertiesArgs: type: object properties: ticketId: type: - string - 'null' mixCode: type: - string - 'null' isCO2Design: type: - string - 'null' plant: type: - string - 'null' productionDate: type: string format: date testCategory: $ref: '#/components/schemas/ConcreteTestCategory' testingCompany: type: - string - 'null' testingCondition: type: - boolean - 'null' weatherCondition: type: - string - 'null' curingConditions: type: - boolean - 'null' cementReduction: type: - number - 'null' format: double loadSize: type: - number - 'null' format: double concreteTemp: type: - number - 'null' format: double ambientTemp: type: - number - 'null' format: double airContent: type: - number - 'null' format: double slump: type: - number - 'null' format: double unitWeight: type: - number - 'null' format: double wcRatio: type: - number - 'null' format: double cO2Dosage: type: - number - 'null' format: double cO2DosageUnit: $ref: '#/components/schemas/CO2DosageUnit' truckNumber: type: - string - 'null' notes: type: - string - 'null' orcaOutlierReason: type: - string - 'null' additionalProperties: false BatchUnit: enum: - Kg - Litre - Package type: string BatchIngredientUnitInput: enum: - Kg - Lb - KgPerM3 - LbPerYd3 - L - Ml - Oz - Gal - LPerM3 - MlPerM3 - MlPerHundredWeight - OzPerYd3 - OzPerHundredWeight - GalPerYd3 type: string StrengthReadingIntervalType: enum: - Days - Hours type: string BatchTestOverviewArgs: type: object properties: divisionId: type: integer format: int32 divisionName: type: - string - 'null' mixCode: type: - string - 'null' mixDesignId: type: integer format: int32 timestamp: type: string format: date-time additionalProperties: false BatchTestSampleArgs: type: object properties: batchTestSampleId: type: integer format: int32 batchProperties: $ref: '#/components/schemas/BatchPropertiesArgs' strengthReadings: type: - array - 'null' items: $ref: '#/components/schemas/StrengthReadingArgs' batchIngredients: type: - array - 'null' items: $ref: '#/components/schemas/BatchIngredientArgs' additionalProperties: false MaterialType: enum: - Cement - CementTypeI - CementTypeIS - CementTypeIP - CementTypeIL - CementTypeII - CementTypeI_II - CementTypeI_IIMH - CementTypeI_II_LA - CementTypeIII - CementTypeIV - CementTypeII_V - CementTypeN - CementTypeS - CementCemI - CementCemII - CementCemIII - CementCemIV - CementCemV - CementCemVI - CementBlendedHydraulic - CoarseAggregate - IntermediateAggregate - FineAggregate - Fiber - FiberTypeI - FiberTypeII - FiberTypeIII - FiberTypeIV - Water - CO2 - SCM - Slag - SlagFerrous - SlagNonFerrous - SlagFerroalloy - FlyAsh - FlyAshC - FlyAshF - FlyAshN - SilicaFume - ReclaimedWater - Admixture - AirEntrainer - Retarder - SuperPlasticizer - WaterReducer - HighRangeWaterReducer - MidRangeWaterReducer - LowRangeWaterReducer - ViscosityModifier - HydrationStabilizer - CorrosionInhibitor - ShrinkageReducer - Accelerator - NonChlorideAccelerator - ChlorideAccelerator - StrengthEnhancer - AntiWashout - Waterproofer - Filler type: string SortOrder: enum: - Ascending - Descending type: string ByBatchTestSampleIdsArgs: type: object properties: batchTestSampleIds: type: - array - 'null' items: type: integer format: int32 additionalProperties: false securitySchemes: OrcaAuth: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.carboncure.com/oauth2/authorize tokenUrl: https://auth.carboncure.com/oauth2/token scopes: {} MyCCAuth: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.carboncure.com/oauth2/authorize tokenUrl: https://auth.carboncure.com/oauth2/token scopes: {} M2MAuth: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.carboncure.com/oauth2/authorize tokenUrl: https://auth.carboncure.com/oauth2/token scopes: {}