Spaces:
Sleeping
Sleeping
File size: 2,536 Bytes
55d0d9e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
# from app.schemas.schemas import IndexReference, IndexTerm, IndexReference
from app.schemas.schemas import IndexReference, EnrichedCode, CommitteeDesignation, Code
from app.database.db import get_async_session
import logging
from app.services.index import index_service
from app.services.enrichment import enrichment_service
log = logging.getLogger(__name__)
router = APIRouter(prefix="/api", tags=["index"])
@router.get("/mapped-index-terms")
async def get_mapped_index_terms(
limit: int = 10,
session: AsyncSession = Depends(get_async_session)
):
mapped_index_references = await index_service.map_index_references(session, limit)
return [IndexReference.model_validate(mapped_index_reference) for mapped_index_reference in mapped_index_references]
@router.get("/get-terms-by-code/{code}")
async def get_terms_by_code(
code: str,
session: AsyncSession = Depends(get_async_session)
):
references = await index_service.get_terms_by_code(session, code)
return [IndexReference.model_validate(row) for row in references]
@router.get("/get-codes-by-term/{term}")
async def get_codes_by_term(
term: str,
session: AsyncSession = Depends(get_async_session)
):
codes = await index_service.get_codes_by_term(session, term)
return [Code.model_validate(code) for code in codes]
# @router.get("/get-codes-by-term/{term}")
# async def get_codes_by_term(
# term: str,
# session: AsyncSession = Depends(get_async_session)
# ):
# codes = await index_service.get_codes_by_term(session, term)
# codes_list = []
# for code in codes:
# code_row, chapter_info, standards, committee_designations, index_terms = await enrichment_service.enrich_code(session, code.code)
# standards_list = []
# for standard in standards:
# standards_list.append({
# "agency": standard.agency,
# "standard_id": standard.standard_id,
# "definition": standard.definition,
# })
# codes_list.append({
# "code": code_row,
# "chapter_info": chapter_info,
# "standards": standards_list,
# "committee_designations": [CommitteeDesignation.model_validate(row) for row in committee_designations],
# "index_terms": [IndexReference.model_validate(row) for row in index_terms]
# })
# return [EnrichedCode.model_validate(code) for code in codes_list] |