refactor: reorganize ValueSet endpoints - Move user valueset items to /api/valueset/user/items - Move valueset definitions to /api/valueset/user/def - Keep lib valueset at /api/valueset/*

This commit is contained in:
mahdahar 2026-02-10 10:05:44 +07:00
parent 40ecb4e6e8
commit f47a43b061
2 changed files with 99 additions and 46 deletions

View File

@ -126,18 +126,33 @@ $routes->group('api', function ($routes) {
$routes->patch('/', 'Contact\MedicalSpecialtyController::update'); $routes->patch('/', 'Contact\MedicalSpecialtyController::update');
}); });
// Lib ValueSet (file-based)
$routes->group('valueset', function ($routes) { $routes->group('valueset', function ($routes) {
$routes->get('/', 'ValueSetController::index'); $routes->get('/', 'ValueSetController::index');
$routes->get('(:any)', 'ValueSetController::index/$1'); $routes->get('(:any)', 'ValueSetController::index/$1');
$routes->post('refresh', 'ValueSetController::refresh'); $routes->post('refresh', 'ValueSetController::refresh');
$routes->get('items', 'ValueSetController::items'); // User ValueSet (database-based)
$routes->get('items/(:num)', 'ValueSetController::showItem/$1'); $routes->group('user', function ($routes) {
$routes->post('items', 'ValueSetController::createItem'); $routes->group('items', function ($routes) {
$routes->put('items/(:num)', 'ValueSetController::updateItem/$1'); $routes->get('/', 'ValueSetController::items');
$routes->delete('items/(:num)', 'ValueSetController::deleteItem/$1'); $routes->get('(:num)', 'ValueSetController::showItem/$1');
$routes->post('/', 'ValueSetController::createItem');
$routes->put('(:num)', 'ValueSetController::updateItem/$1');
$routes->delete('(:num)', 'ValueSetController::deleteItem/$1');
});
$routes->group('def', function ($routes) {
$routes->get('/', 'ValueSetDefController::index');
$routes->get('(:num)', 'ValueSetDefController::show/$1');
$routes->post('/', 'ValueSetDefController::create');
$routes->put('(:num)', 'ValueSetDefController::update/$1');
$routes->delete('(:num)', 'ValueSetDefController::delete/$1');
});
});
}); });
// Result ValueSet
$routes->group('result', function ($routes) { $routes->group('result', function ($routes) {
$routes->group('valueset', function ($routes) { $routes->group('valueset', function ($routes) {
$routes->get('/', 'Result\ResultValueSetController::index'); $routes->get('/', 'Result\ResultValueSetController::index');
@ -146,14 +161,6 @@ $routes->group('api', function ($routes) {
$routes->put('(:num)', 'Result\ResultValueSetController::update/$1'); $routes->put('(:num)', 'Result\ResultValueSetController::update/$1');
$routes->delete('(:num)', 'Result\ResultValueSetController::delete/$1'); $routes->delete('(:num)', 'Result\ResultValueSetController::delete/$1');
}); });
$routes->group('valuesetdef', function ($routes) {
$routes->get('/', 'ValueSetDefController::index');
$routes->get('(:num)', 'ValueSetDefController::show/$1');
$routes->post('/', 'ValueSetDefController::create');
$routes->put('(:num)', 'ValueSetDefController::update/$1');
$routes->delete('(:num)', 'ValueSetDefController::delete/$1');
});
}); });
// Counter // Counter

View File

@ -2222,18 +2222,49 @@ paths:
/api/valueset: /api/valueset:
get: get:
tags: [ValueSets] tags: [ValueSets]
summary: List value set definitions summary: List lib value sets
description: List all library/system value sets from JSON files
security: security:
- bearerAuth: [] - bearerAuth: []
parameters: parameters:
- name: VSetCode - name: search
in: path in: query
description: Optional value set code to get specific valueset
schema: schema:
type: string type: string
description: Optional search term to filter value sets
responses: responses:
'200': '200':
description: List of value sets description: List of lib value sets with item counts
content:
application/json:
schema:
type: object
properties:
status:
type: string
data:
type: object
additionalProperties:
type: integer
description: Number of items in each value set
/api/valueset/{key}:
get:
tags: [ValueSets]
summary: Get lib value set by key
description: Get a specific library/system value set from JSON files
security:
- bearerAuth: []
parameters:
- name: key
in: path
required: true
schema:
type: string
description: Value set key (e.g., marital_status, sex)
responses:
'200':
description: Lib value set details
content: content:
application/json: application/json:
schema: schema:
@ -2244,23 +2275,29 @@ paths:
data: data:
type: array type: array
items: items:
$ref: '#/components/schemas/ValueSetDef' type: object
properties:
value:
type: string
label:
type: string
/api/valueset/refresh: /api/valueset/refresh:
post: post:
tags: [ValueSets] tags: [ValueSets]
summary: Refresh ValueSet cache summary: Refresh lib ValueSet cache
description: Clear and reload the ValueSet library cache description: Clear and reload the library/system ValueSet cache from JSON files
security: security:
- bearerAuth: [] - bearerAuth: []
responses: responses:
'200': '200':
description: Cache refreshed description: Lib ValueSet cache refreshed
/api/valueset/items: /api/valueset/user/items:
get: get:
tags: [ValueSets] tags: [ValueSets]
summary: List value set items summary: List user value set items
description: List value set items from database (user-defined)
security: security:
- bearerAuth: [] - bearerAuth: []
parameters: parameters:
@ -2271,7 +2308,7 @@ paths:
description: Filter by ValueSet ID description: Filter by ValueSet ID
responses: responses:
'200': '200':
description: List of value set items description: List of user value set items
content: content:
application/json: application/json:
schema: schema:
@ -2284,7 +2321,8 @@ paths:
post: post:
tags: [ValueSets] tags: [ValueSets]
summary: Create value set item summary: Create user value set item
description: Create value set item in database (user-defined)
security: security:
- bearerAuth: [] - bearerAuth: []
requestBody: requestBody:
@ -2295,12 +2333,13 @@ paths:
$ref: '#/components/schemas/ValueSetItem' $ref: '#/components/schemas/ValueSetItem'
responses: responses:
'201': '201':
description: Value set item created description: User value set item created
/api/valueset/items/{id}: /api/valueset/user/items/{id}:
get: get:
tags: [ValueSets] tags: [ValueSets]
summary: Get value set item by ID summary: Get user value set item by ID
description: Get value set item from database (user-defined)
security: security:
- bearerAuth: [] - bearerAuth: []
parameters: parameters:
@ -2311,11 +2350,12 @@ paths:
type: integer type: integer
responses: responses:
'200': '200':
description: Value set item details description: User value set item details
put: put:
tags: [ValueSets] tags: [ValueSets]
summary: Update value set item summary: Update user value set item
description: Update value set item in database (user-defined)
security: security:
- bearerAuth: [] - bearerAuth: []
parameters: parameters:
@ -2332,11 +2372,12 @@ paths:
$ref: '#/components/schemas/ValueSetItem' $ref: '#/components/schemas/ValueSetItem'
responses: responses:
'200': '200':
description: Value set item updated description: User value set item updated
delete: delete:
tags: [ValueSets] tags: [ValueSets]
summary: Delete value set item summary: Delete user value set item
description: Delete value set item from database (user-defined)
security: security:
- bearerAuth: [] - bearerAuth: []
parameters: parameters:
@ -2347,21 +2388,23 @@ paths:
type: integer type: integer
responses: responses:
'200': '200':
description: Value set item deleted description: User value set item deleted
/api/valuesetdef: /api/valueset/user/def:
get: get:
tags: [ValueSets] tags: [ValueSets]
summary: List value set definitions summary: List user value set definitions
description: List value set definitions from database (user-defined)
security: security:
- bearerAuth: [] - bearerAuth: []
responses: responses:
'200': '200':
description: List of value set definitions description: List of user value set definitions
post: post:
tags: [ValueSets] tags: [ValueSets]
summary: Create value set definition summary: Create user value set definition
description: Create value set definition in database (user-defined)
security: security:
- bearerAuth: [] - bearerAuth: []
requestBody: requestBody:
@ -2372,12 +2415,13 @@ paths:
$ref: '#/components/schemas/ValueSetDef' $ref: '#/components/schemas/ValueSetDef'
responses: responses:
'201': '201':
description: Value set definition created description: User value set definition created
/api/valuesetdef/{id}: /api/valueset/user/def/{id}:
get: get:
tags: [ValueSets] tags: [ValueSets]
summary: Get value set definition by ID summary: Get user value set definition by ID
description: Get value set definition from database (user-defined)
security: security:
- bearerAuth: [] - bearerAuth: []
parameters: parameters:
@ -2388,11 +2432,12 @@ paths:
type: integer type: integer
responses: responses:
'200': '200':
description: Value set definition details description: User value set definition details
put: put:
tags: [ValueSets] tags: [ValueSets]
summary: Update value set definition summary: Update user value set definition
description: Update value set definition in database (user-defined)
security: security:
- bearerAuth: [] - bearerAuth: []
parameters: parameters:
@ -2409,11 +2454,12 @@ paths:
$ref: '#/components/schemas/ValueSetDef' $ref: '#/components/schemas/ValueSetDef'
responses: responses:
'200': '200':
description: Value set definition updated description: User value set definition updated
delete: delete:
tags: [ValueSets] tags: [ValueSets]
summary: Delete value set definition summary: Delete user value set definition
description: Delete value set definition from database (user-defined)
security: security:
- bearerAuth: [] - bearerAuth: []
parameters: parameters:
@ -2424,7 +2470,7 @@ paths:
type: integer type: integer
responses: responses:
'200': '200':
description: Value set definition deleted description: User value set definition deleted
# ======================================== # ========================================
# Master Data Routes # Master Data Routes