clqms-be/AGENTS.md

87 lines
2.6 KiB
Markdown
Raw Normal View History

2026-01-07 06:38:09 +07:00
# Valueset Data Scanning - Agent Instructions
## Quick Reference
**Database Tables:**
- [`valuesetdef`](app/Models/ValueSet/ValueSetDefModel.php:8) - Category definitions (VSetID, VSName, VSDesc)
- [`valueset`](app/Models/ValueSet/ValueSetModel.php:8) - Actual values (VID, VSetID, VValue, VDesc, VOrder)
## Agent Workflow for Valueset Queries
### Step 1: Identify the Request Type
**Category Search:**
```
User: "Show me all values in [CATEGORY_NAME]"
Agent: Search valuesetdef by VSName → Get VSetID → Query values by VSetID
```
**Reference Search:**
```
User: "Show me values for [TABLE.COLUMN]"
Agent: Search valuesetdef by VSDesc → Get VSetID → Query values by VSetID
```
**ID Search:**
```
User: "Show me values for VSetDefID [ID]"
Agent: Directly query values by VSetID
```
**Filtered Search:**
```
User: "Find values containing [TERM] in [CATEGORY]"
Agent: Search valuesetdef by VSName → Get VSetID → Query values with LIKE filter
```
### Step 2: Execute Query
**Model Methods:**
- [`ValueSetDefModel::getValueSetDefs($param)`](app/Models/ValueSet/ValueSetDefModel.php:18) - Search categories
- [`ValueSetModel::getValueSetByValueSetDef($VSetID)`](app/Models/ValueSet/ValueSetModel.php:52) - Get values by category
- [`ValueSetModel::getValueSets($param, $page, $limit, $VSetID)`](app/Models/ValueSet/ValueSetModel.php:18) - Get values with filters
### Step 3: Return Results
**Response Format:**
```json
{
"VSetID": 27,
"VSName": "Test Type",
"values": [
{ "VID": 1, "VValue": "TEST", "VDesc": "Test", "VOrder": 1 },
{ "VID": 2, "VValue": "PARAM", "VDesc": "Parameter", "VOrder": 2 }
]
}
```
## Common Valuesets
| VSetDefID | VSName | VSDesc | Search Keywords |
|-----------|--------|--------|-----------------|
| 3 | Gender | - | gender, sex |
| 27 | Test Type | `testdefsite.TestType` | test, type, testdefsite |
| 15 | Specimen Type | - | specimen, type, blood, urine |
| 31 | Range Types | `refnum.RangeType` | range, refnum |
| 46 | Num Ref Type | `refnum.NumRefType` | numeric, reference |
## Example Agent Conversations
**User:** "Show me Gender values"
**Agent:**
1. `getValueSetDefs("Gender")` → VSetID = 3
2. `getValueSetByValueSetDef(3)` → Returns values
3. Output: Female, Male, Unknown
**User:** "What values for testdefsite.TestType?"
**Agent:**
1. `getValueSetDefs("testdefsite.TestType")` → VSetID = 27
2. `getValueSetByValueSetDef(27)` → Returns values
3. Output: TEST, PARAM, CALC, GROUP, TITLE
**User:** "Find values with 'STAT' in Priority"
**Agent:**
1. `getValueSetDefs("Priority")` → VSetID = 1
2. `getValueSets("STAT", null, 50, 1)` → Returns matching values
3. Output: STAT, STAT2 (if exists)