diff --git a/public/api-docs.yaml b/public/api-docs.yaml index a0ce55d..025d4af 100644 --- a/public/api-docs.yaml +++ b/public/api-docs.yaml @@ -327,25 +327,109 @@ components: PatientVisit: type: object properties: - VisitID: + InternalPVID: + type: integer + description: Primary key (auto-generated) + PVID: type: string - PatientID: - type: string - VisitDate: - type: string - format: date-time - VisitType: + description: Visit ID (auto-generated with DV prefix if not provided) + InternalPID: + type: integer + description: Reference to patient + EpisodeID: type: string + description: Episode identifier SiteID: type: integer + description: Site reference + CreateDate: + type: string + format: date-time + EndDate: + type: string + format: date-time + ArchivedDate: + type: string + format: date-time + DelDate: + type: string + format: date-time + PatDiag: + type: object + description: Diagnosis information (optional) + properties: + DiagCode: + type: string + Diagnosis: + type: string + PatVisitADT: + type: object + description: ADT (Admission/Discharge/Transfer) information (optional) + properties: + ADTCode: + type: string + enum: [A01, A02, A03, A04, A08] + LocationID: + type: integer + AttDoc: + type: integer + description: Attending physician ContactID + RefDoc: + type: integer + description: Referring physician ContactID + AdmDoc: + type: integer + description: Admitting physician ContactID + CnsDoc: + type: integer + description: Consulting physician ContactID + + # PatVisitADT (for standalone ADT operations) + PatVisitADT: + type: object + properties: + PVADTID: + type: integer + description: Primary key (auto-generated) + InternalPVID: + type: integer + description: Reference to patient visit + ADTCode: + type: string + enum: [A01, A02, A03, A04, A08] + description: | + A01: Admit + A02: Transfer + A03: Discharge + A04: Register + A08: Update LocationID: type: integer - DepartmentID: + description: Location/ward reference + AttDoc: type: integer - AttendingPhysician: + description: Attending physician ContactID + RefDoc: + type: integer + description: Referring physician ContactID + AdmDoc: + type: integer + description: Admitting physician ContactID + CnsDoc: + type: integer + description: Consulting physician ContactID + CreateDate: type: string - ReferringPhysician: + format: date-time + EndDate: type: string + format: date-time + ArchivedDate: + type: string + format: date-time + DelDate: + type: string + format: date-time # Organization Account: @@ -617,13 +701,24 @@ components: format: date-time OrderStatus: type: string - description: Order status code + enum: [ORD, SCH, ANA, VER, REV, REP] + description: | + ORD: Ordered + SCH: Scheduled + ANA: Analysis + VER: Verified + REV: Reviewed + REP: Reported OrderStatusLabel: type: string description: Order status display text Priority: type: string - description: Priority code + enum: [R, S, U] + description: | + R: Routine + S: Stat + U: Urgent PriorityLabel: type: string description: Priority display text @@ -758,78 +853,160 @@ components: Location: type: object properties: - id: + LocationID: type: integer - LocationCode: - type: string - LocationName: - type: string - LocationType: - type: string + description: Primary key SiteID: type: integer + description: Reference to site + LocCode: + type: string + maxLength: 6 + description: Location code (short identifier) + Parent: + type: integer + nullable: true + description: Parent location ID for hierarchical locations + LocFull: + type: string + maxLength: 255 + description: Full location name + Description: + type: string + maxLength: 255 + description: Location description + LocType: + type: string + description: Location type code (e.g., ROOM, WARD, BUILDING) + CreateDate: + type: string + format: date-time + EndDate: + type: string + format: date-time + nullable: true Contact: type: object properties: - id: + ContactID: type: integer - ContactName: + description: Primary key + NameFirst: type: string - ContactType: + description: First name (required) + NameLast: type: string + description: Last name + Title: + type: string + description: Title (e.g., Dr, Mr, Mrs) + Initial: + type: string + description: Middle initial + Birthdate: + type: string + format: date-time + description: Date of birth + EmailAddress1: + type: string + format: email + description: Primary email address + EmailAddress2: + type: string + format: email + description: Secondary email address Phone: type: string - Email: + description: Primary phone number + MobilePhone1: type: string - Address: + description: Primary mobile number + MobilePhone2: type: string + description: Secondary mobile number Specialty: type: string - description: Specialty code - SpecialtyLabel: + description: Medical specialty code + SubSpecialty: type: string - description: Specialty display text - Occupation: + description: Sub-specialty code + CreateDate: type: string - description: Occupation code - OccupationLabel: + format: date-time + EndDate: type: string + format: date-time description: Occupation display text Occupation: type: object properties: - id: + OccupationID: type: integer - OccupationCode: + description: Primary key + OccCode: type: string - OccupationName: + description: Occupation code + OccText: type: string + description: Occupation name/text + Description: + type: string + description: Additional description + CreateDate: + type: string + format: date-time MedicalSpecialty: type: object properties: - id: + SpecialtyID: type: integer - SpecialtyCode: + description: Primary key + SpecialtyText: type: string - SpecialtyName: + description: Specialty name/text + Parent: + type: integer + description: Parent specialty ID for hierarchical structure + Title: type: string + description: Title/abbreviation + CreateDate: + type: string + format: date-time + EndDate: + type: string + format: date-time Counter: type: object properties: - id: + CounterID: type: integer - CounterName: + description: Primary key + CounterDesc: type: string - Prefix: + description: Counter description/name + CounterValue: + type: integer + description: Current counter value + CounterStart: + type: integer + description: Starting value for the counter + CounterEnd: + type: integer + description: Ending value (for auto-reset) + CounterReset: type: string - CurrentValue: - type: integer - SiteID: - type: integer + description: Reset pattern (e.g., D=Daily, M=Monthly, Y=Yearly) + CreateDate: + type: string + format: date-time + EndDate: + type: string + format: date-time # Dashboard DashboardSummary: @@ -1039,11 +1216,27 @@ paths: schema: type: integer default: 20 - - name: search + - name: InternalPID + in: query + schema: + type: integer + description: Filter by internal patient ID + - name: PatientID in: query schema: type: string - description: Search by PatientID or name + description: Filter by patient ID + - name: Name + in: query + schema: + type: string + description: Search by patient name + - name: Birthdate + in: query + schema: + type: string + format: date + description: Filter by birthdate (YYYY-MM-DD) responses: '200': description: List of patients @@ -1094,15 +1287,21 @@ paths: delete: tags: [Patients] - summary: Delete patient + summary: Delete patient (soft delete) security: - bearerAuth: [] - parameters: - - name: PatientID - in: query - required: true - schema: - type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - InternalPID + properties: + InternalPID: + type: integer + description: Internal patient record ID responses: '200': description: Patient deleted successfully @@ -1116,9 +1315,15 @@ paths: parameters: - name: PatientID in: query - required: true schema: type: string + description: Patient ID to check + - name: EmailAddress1 + in: query + schema: + type: string + format: email + description: Email address to check responses: '200': description: Patient check result @@ -1194,6 +1399,9 @@ paths: post: tags: [Patient Visits] summary: Create patient visit + description: | + Creates a new patient visit. PVID is auto-generated with 'DV' prefix if not provided. + Can optionally include PatDiag (diagnosis) and PatVisitADT (ADT information). security: - bearerAuth: [] requestBody: @@ -1201,14 +1409,73 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PatientVisit' + type: object + required: + - InternalPID + properties: + PVID: + type: string + description: Visit ID (auto-generated with DV prefix if not provided) + InternalPID: + type: integer + description: Patient ID (required) + EpisodeID: + type: string + description: Episode identifier + SiteID: + type: integer + description: Site reference + PatDiag: + type: object + description: Optional diagnosis information + properties: + DiagCode: + type: string + Diagnosis: + type: string + PatVisitADT: + type: object + description: Optional ADT information + properties: + ADTCode: + type: string + enum: [A01, A02, A03, A04, A08] + LocationID: + type: integer + AttDoc: + type: integer + RefDoc: + type: integer + AdmDoc: + type: integer + CnsDoc: + type: integer responses: '201': description: Visit created successfully + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + type: object + properties: + PVID: + type: string + InternalPVID: + type: integer patch: tags: [Patient Visits] summary: Update patient visit + description: | + Updates an existing patient visit. InternalPVID is required. + Can update main visit data, PatDiag, and add new PatVisitADT records. security: - bearerAuth: [] requestBody: @@ -1216,10 +1483,70 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PatientVisit' + type: object + required: + - InternalPVID + properties: + InternalPVID: + type: integer + description: Visit ID (required) + PVID: + type: string + InternalPID: + type: integer + EpisodeID: + type: string + SiteID: + type: integer + PatDiag: + type: object + description: Diagnosis information (will update if exists) + properties: + DiagCode: + type: string + Diagnosis: + type: string + PatVisitADT: + type: array + description: Array of ADT records to add (new records only) + items: + type: object + properties: + ADTCode: + type: string + enum: [A01, A02, A03, A04, A08] + LocationID: + type: integer + AttDoc: + type: integer + RefDoc: + type: integer + AdmDoc: + type: integer + CnsDoc: + type: integer + sequence: + type: integer + description: Used for ordering multiple ADT records responses: '200': description: Visit updated successfully + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + type: object + properties: + PVID: + type: string + InternalPVID: + type: integer delete: tags: [Patient Visits] @@ -1242,9 +1569,21 @@ paths: required: true schema: type: string + description: PVID (visit identifier like DV00001) responses: '200': description: Visit details + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + $ref: '#/components/schemas/PatientVisit' /api/patvisit/patient/{patientId}: get: @@ -1257,10 +1596,22 @@ paths: in: path required: true schema: - type: string + type: integer + description: Internal Patient ID (InternalPID) responses: '200': description: Patient visits list + content: + application/json: + schema: + type: object + properties: + status: + type: string + data: + type: array + items: + $ref: '#/components/schemas/PatientVisit' /api/patvisitadt: post: @@ -1280,7 +1631,7 @@ paths: properties: InternalPVID: type: integer - description: Internal Visit ID from patvisit table + description: Internal Visit ID from patvisit table (required) ADTCode: type: string enum: [A01, A02, A03, A04, A08] @@ -1294,20 +1645,34 @@ paths: type: integer description: Location/ward ID AttDoc: - type: string - description: Attending physician + type: integer + description: Attending physician ContactID RefDoc: - type: string - description: Referring physician + type: integer + description: Referring physician ContactID AdmDoc: - type: string - description: Admitting physician + type: integer + description: Admitting physician ContactID CnsDoc: - type: string - description: Consulting physician + type: integer + description: Consulting physician ContactID responses: '201': description: ADT visit created + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + type: object + properties: + PVADTID: + type: integer patch: tags: [Patient Visits] @@ -1325,7 +1690,10 @@ paths: properties: PVADTID: type: integer - description: ADT record ID + description: ADT record ID (required) + InternalPVID: + type: integer + description: Internal Visit ID from patvisit table ADTCode: type: string enum: [A01, A02, A03, A04, A08] @@ -1339,20 +1707,31 @@ paths: type: integer description: Location/ward ID AttDoc: - type: string - description: Attending physician + type: integer + description: Attending physician ContactID RefDoc: - type: string - description: Referring physician + type: integer + description: Referring physician ContactID AdmDoc: - type: string - description: Admitting physician + type: integer + description: Admitting physician ContactID CnsDoc: - type: string - description: Consulting physician + type: integer + description: Consulting physician ContactID responses: '200': description: ADT visit updated + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + type: object # ======================================== # Organization - Account Routes @@ -1403,7 +1782,18 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Account' + type: object + required: + - id + properties: + id: + type: integer + AccountName: + type: string + AccountCode: + type: string + AccountType: + type: string responses: '200': description: Account updated @@ -1413,6 +1803,17 @@ paths: summary: Delete account security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + type: integer responses: '200': description: Account deleted @@ -1471,7 +1872,18 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Site' + type: object + required: + - id + properties: + id: + type: integer + SiteName: + type: string + SiteCode: + type: string + AccountID: + type: integer responses: '200': description: Site updated @@ -1481,6 +1893,17 @@ paths: summary: Delete site security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + type: integer responses: '200': description: Site deleted @@ -1534,6 +1957,21 @@ paths: summary: Update discipline security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + type: integer + DisciplineName: + type: string + DisciplineCode: + type: string responses: '200': description: Discipline updated @@ -1543,6 +1981,17 @@ paths: summary: Delete discipline security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + type: integer responses: '200': description: Discipline deleted @@ -1596,6 +2045,23 @@ paths: summary: Update department security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + type: integer + DeptName: + type: string + DeptCode: + type: string + SiteID: + type: integer responses: '200': description: Department updated @@ -1605,6 +2071,17 @@ paths: summary: Delete department security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + type: integer responses: '200': description: Department deleted @@ -1658,6 +2135,25 @@ paths: summary: Update workstation security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + type: integer + WorkstationName: + type: string + WorkstationCode: + type: string + SiteID: + type: integer + DepartmentID: + type: integer responses: '200': description: Workstation updated @@ -1667,6 +2163,17 @@ paths: summary: Delete workstation security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + type: integer responses: '200': description: Workstation deleted @@ -1720,6 +2227,12 @@ paths: summary: Update specimen security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Specimen' responses: '200': description: Specimen updated @@ -1790,6 +2303,41 @@ paths: '200': description: Container definition details + # ContainerDef aliases (same as /api/specimen/container) + /api/specimen/containerdef: + get: + tags: [Specimen] + summary: List container definitions (alias) + security: + - bearerAuth: [] + responses: + '200': + description: List of container definitions + + post: + tags: [Specimen] + summary: Create container definition (alias) + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ContainerDef' + responses: + '201': + description: Container definition created + + patch: + tags: [Specimen] + summary: Update container definition (alias) + security: + - bearerAuth: [] + responses: + '200': + description: Container definition updated + /api/specimen/prep: get: tags: [Specimen] @@ -1958,12 +2506,34 @@ paths: in: query schema: type: integer + - name: SiteID + in: query + schema: + type: integer + description: Filter by site ID - name: TestType in: query schema: type: string enum: [TEST, PARAM, CALC, GROUP, TITLE] description: Filter by test type + - name: VisibleScr + in: query + schema: + type: integer + enum: [0, 1] + description: Filter by screen visibility (0=hidden, 1=visible) + - name: VisibleRpt + in: query + schema: + type: integer + enum: [0, 1] + description: Filter by report visibility (0=hidden, 1=visible) + - name: TestSiteName + in: query + schema: + type: string + description: Search by test name or code responses: '200': description: List of test definitions @@ -2039,15 +2609,27 @@ paths: in: query schema: type: integer + - name: perPage + in: query + schema: + type: integer + - name: InternalPID + in: query + schema: + type: integer + description: Filter by internal patient ID - name: OrderStatus in: query schema: type: string - enum: [pending, in-progress, completed, cancelled] - - name: PatientID - in: query - schema: - type: string + enum: [ORD, SCH, ANA, VER, REV, REP] + description: | + ORD: Ordered + SCH: Scheduled + ANA: Analysis + VER: Verified + REV: Reviewed + REP: Reported responses: '200': description: List of orders @@ -2073,7 +2655,11 @@ paths: type: string Priority: type: string - enum: [routine, stat, urgent] + enum: [R, S, U] + description: | + R: Routine + S: Stat + U: Urgent SiteID: type: integer RequestingPhysician: @@ -2135,7 +2721,14 @@ paths: type: string OrderStatus: type: string - enum: [pending, in-progress, completed, cancelled] + enum: [ORD, SCH, ANA, VER, REV, REP] + description: | + ORD: Ordered + SCH: Scheduled + ANA: Analysis + VER: Verified + REV: Reviewed + REP: Reported responses: '200': description: Order status updated @@ -2528,9 +3121,33 @@ paths: summary: List locations security: - bearerAuth: [] + parameters: + - name: LocCode + in: query + schema: + type: string + description: Filter by location code + - name: LocName + in: query + schema: + type: string + description: Filter by location name (searches in LocFull) responses: '200': description: List of locations + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/Location' post: tags: [Master Data] @@ -2542,25 +3159,104 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Location' + type: object + required: + - LocCode + - LocFull + properties: + SiteID: + type: integer + LocCode: + type: string + maxLength: 6 + Parent: + type: integer + LocFull: + type: string + maxLength: 255 + Description: + type: string + maxLength: 255 + LocType: + type: string responses: '201': description: Location created + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + type: object patch: tags: [Master Data] summary: Update location security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - LocCode + - LocFull + properties: + LocationID: + type: integer + SiteID: + type: integer + LocCode: + type: string + maxLength: 6 + Parent: + type: integer + LocFull: + type: string + maxLength: 255 + Description: + type: string + maxLength: 255 + LocType: + type: string responses: '200': description: Location updated + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + type: object delete: tags: [Master Data] summary: Delete location security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - LocationID + properties: + LocationID: + type: integer responses: '200': description: Location deleted @@ -2577,9 +3273,21 @@ paths: required: true schema: type: integer + description: LocationID (primary key) responses: '200': description: Location details + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + $ref: '#/components/schemas/Location' /api/contact: get: @@ -2590,6 +3298,19 @@ paths: responses: '200': description: List of contacts + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/Contact' post: tags: [Master Data] @@ -2601,7 +3322,41 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Contact' + type: object + required: + - NameFirst + properties: + NameFirst: + type: string + description: First name (required) + NameLast: + type: string + description: Last name + Title: + type: string + description: Title (e.g., Dr, Mr, Mrs) + Initial: + type: string + description: Middle initial + Birthdate: + type: string + format: date-time + EmailAddress1: + type: string + format: email + EmailAddress2: + type: string + format: email + Phone: + type: string + MobilePhone1: + type: string + MobilePhone2: + type: string + Specialty: + type: string + SubSpecialty: + type: string responses: '201': description: Contact created @@ -2611,6 +3366,44 @@ paths: summary: Update contact security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - NameFirst + properties: + ContactID: + type: integer + NameFirst: + type: string + NameLast: + type: string + Title: + type: string + Initial: + type: string + Birthdate: + type: string + format: date-time + EmailAddress1: + type: string + format: email + EmailAddress2: + type: string + format: email + Phone: + type: string + MobilePhone1: + type: string + MobilePhone2: + type: string + Specialty: + type: string + SubSpecialty: + type: string responses: '200': description: Contact updated @@ -2620,6 +3413,17 @@ paths: summary: Delete contact security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - ContactID + properties: + ContactID: + type: integer responses: '200': description: Contact deleted @@ -2636,9 +3440,21 @@ paths: required: true schema: type: integer + description: ContactID (primary key) responses: '200': description: Contact details + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + $ref: '#/components/schemas/Contact' /api/occupation: get: @@ -2649,6 +3465,19 @@ paths: responses: '200': description: List of occupations + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/Occupation' post: tags: [Master Data] @@ -2660,7 +3489,20 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Occupation' + type: object + required: + - OccCode + - OccText + properties: + OccCode: + type: string + description: Occupation code (required) + OccText: + type: string + description: Occupation name/text (required) + Description: + type: string + description: Additional description responses: '201': description: Occupation created @@ -2670,6 +3512,24 @@ paths: summary: Update occupation security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - OccCode + - OccText + properties: + OccupationID: + type: integer + OccCode: + type: string + OccText: + type: string + Description: + type: string responses: '200': description: Occupation updated @@ -2686,9 +3546,21 @@ paths: required: true schema: type: integer + description: OccupationID (primary key) responses: '200': description: Occupation details + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + $ref: '#/components/schemas/Occupation' /api/medicalspecialty: get: @@ -2699,6 +3571,19 @@ paths: responses: '200': description: List of medical specialties + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/MedicalSpecialty' post: tags: [Master Data] @@ -2710,7 +3595,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/MedicalSpecialty' + type: object + required: + - SpecialtyText + properties: + SpecialtyText: + type: string + description: Specialty name/text (required) + Parent: + type: integer + description: Parent specialty ID + Title: + type: string + description: Title/abbreviation responses: '201': description: Medical specialty created @@ -2720,6 +3617,23 @@ paths: summary: Update medical specialty security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - SpecialtyText + properties: + SpecialtyID: + type: integer + SpecialtyText: + type: string + Parent: + type: integer + Title: + type: string responses: '200': description: Medical specialty updated @@ -2736,9 +3650,21 @@ paths: required: true schema: type: integer + description: SpecialtyID (primary key) responses: '200': description: Medical specialty details + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + $ref: '#/components/schemas/MedicalSpecialty' /api/counter: get: @@ -2749,6 +3675,19 @@ paths: responses: '200': description: List of counters + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/Counter' post: tags: [Master Data] @@ -2760,7 +3699,23 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Counter' + type: object + properties: + CounterDesc: + type: string + description: Counter description/name + CounterValue: + type: integer + description: Current counter value + CounterStart: + type: integer + description: Starting value + CounterEnd: + type: integer + description: Ending value (for auto-reset) + CounterReset: + type: string + description: Reset pattern (D=Daily, M=Monthly, Y=Yearly) responses: '201': description: Counter created @@ -2770,6 +3725,25 @@ paths: summary: Update counter security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + CounterID: + type: integer + CounterDesc: + type: string + CounterValue: + type: integer + CounterStart: + type: integer + CounterEnd: + type: integer + CounterReset: + type: string responses: '200': description: Counter updated @@ -2779,6 +3753,17 @@ paths: summary: Delete counter security: - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - CounterID + properties: + CounterID: + type: integer responses: '200': description: Counter deleted @@ -2795,9 +3780,21 @@ paths: required: true schema: type: integer + description: CounterID (primary key) responses: '200': description: Counter details + content: + application/json: + schema: + type: object + properties: + status: + type: string + message: + type: string + data: + $ref: '#/components/schemas/Counter' /api/areageo: get: