Skip to content

Suvrat1629/MedBridgeBackend

Repository files navigation

NAMASTE-TM2 FHIR Terminology Service

A FHIR R4-compliant Traditional Medicine to ICD-11 TM2 mapping service built with Spring Boot and MongoDB. Integrates traditional Indian medicine codes with WHO ICD-11 Traditional Medicine Module 2 for healthcare interoperability.

🎯 Core Features

βœ… MongoDB-based terminology storage with TM2 mappings
βœ… FHIR R4 compliance using HAPI FHIR
βœ… Traditional Medicine code search (NAMASTE/Ayurveda/Siddha/Unani)
βœ… Symptom-based search with fuzzy matching
βœ… ABHA authentication integration
βœ… Auto-complete API for EMR systems
βœ… Confidence-based mapping scoring


πŸš€ Quick Start

Prerequisites

  • Java 17+
  • MongoDB (local or Atlas)
  • Maven 3.6+

Setup & Run

git clone <repository>
cd MedBridgeBackend
mvn spring-boot:run

Application URL: http://localhost:8082
MongoDB: Configured via application.properties


πŸ“‹ API Endpoints

πŸ”Ή Core Terminology Search

Search by Code (Primary)

# Search in both tm2_code and code fields
GET /api/fhir/search/code/{codeValue}

# Search only TM2 codes
GET /api/fhir/search/tm2code/{codeValue}

# Search only traditional medicine codes
GET /api/fhir/search/codeonly/{codeValue}

Symptom-based Search

# Search by symptoms/descriptions
GET /api/fhir/search/symptoms?query=fever

πŸ”Ή ABHA Authentication

POST /api/abha/initialize        # Initialize ABHA flow
GET  /api/abha/check/{healthId}  # Check health ID
POST /api/abha/login            # ABHA login
GET  /api/abha/profile          # Get ABHA profile

πŸ”Ή Health Checks

GET /api/terminology/health     # Service status
GET /api/fhir/health           # FHIR service status

πŸ’Ύ Data Model

MongoDB Collection: tm2_mappings

{
  "_id": "...",
  "tm2_code": "XM4KH5",           // ICD-11 TM2 code
  "tm2_link": "...",              // TM2 URI
  "code": "NAM001",               // Traditional medicine code
  "tm2_title": "Fever, unspecified",
  "tm2_definition": "...",
  "code_title": "Vataj Jwara",    // Traditional medicine name
  "code_description": "...",      // Description
  "confidence_score": 0.85,       // Mapping confidence (0-1)
  "type": "Ayurveda"              // Medicine category
}

πŸ§ͺ Testing

Run Automated Tests

# Linux/Mac
./test-endpoints.sh

# Windows
./test-endpoints.bat

Sample Test Calls

# FHIR code search
curl "http://localhost:8082/api/fhir/search/code/NAM001"

# Symptom search
curl "http://localhost:8082/api/fhir/search/symptoms?query=fever"

# Health check
curl "http://localhost:8082/api/fhir/health"

Expected Response Format (FHIR)

{
  "resourceType": "Parameters",
  "meta": {
    "versionId": "1",
    "profile": ["http://hl7.org.in/fhir/StructureDefinition/AyushParameters"]
  },
  "parameter": [
    {
      "name": "code",
      "valueString": "NAM001"
    },
    {
      "name": "display",
      "valueString": "Vataj Jwara"
    },
    {
      "name": "tm2_code", 
      "valueString": "XM4KH5"
    }
  ]
}

βš™οΈ Configuration

MongoDB Connection

# application.properties
spring.data.mongodb.uri=mongodb+srv://user:[email protected]/traditional_medicine_db

ABHA Settings

abha.base-url=https://sandbox.abdm.gov.in
abha.client-id=your_client_id
abha.client-secret=your_client_secret

FHIR Configuration

fhir.terminology.version=1.0.0
fhir.codesystem.count=4500

πŸ—οΈ Architecture

  • Backend: Spring Boot 3.5.5
  • Database: MongoDB with Spring Data
  • FHIR: HAPI FHIR R4 (v6.10.5)
  • Security: OAuth2 + ABHA integration
  • Authentication: Spring Security

Key Components

  • NamasteTerminologyController - REST endpoints (commented out)
  • FhirBundleController - Active FHIR endpoints
  • NamasteTerminologyService - Core business logic
  • TerminologyFhirService - FHIR resource handling
  • NamasteCodeRepository - MongoDB data access

🎯 Integration Examples

JavaScript Frontend

// Search by code
const searchCode = async (code) => {
  const response = await fetch(`/api/fhir/search/code/${code}`, {
    headers: {'Accept': 'application/fhir+json;fhirVersion=4.0'}
  });
  return await response.json(); // FHIR Parameters
};

// Symptom search
const searchSymptoms = async (query) => {
  const response = await fetch(`/api/fhir/search/symptoms?query=${query}`);
  return await response.json(); // FHIR Bundle
};

HAPI FHIR Client

FhirContext ctx = FhirContext.forR4();
IGenericClient client = ctx.newRestfulGenericClient("http://localhost:8082/api/fhir");

// Search by code
Parameters result = client.operation()
    .onType(CodeSystem.class)
    .named("search")
    .withParameter(Parameters.class, "code", new StringType("NAM001"))
    .execute();

πŸ“Š MongoDB Queries

Sample Repository Methods

// Exact code search (both fields)
@Query("{'$or': [{'tm2_code': ?0}, {'code': ?0}]}")
Optional<List<NamasteCode>> findByAnyCode(String code);

// Symptom fuzzy search
@Query("{'$or': [{'code_description': {$regex: ?0, $options: 'i'}}, 
                 {'tm2_definition': {$regex: ?0, $options: 'i'}}]}")
List<NamasteCode> findBySymptoms(String query);

// High confidence mappings
@Query("{'confidence_score': {$gte: 0.8}}")
List<NamasteCode> findHighConfidenceMappings();

πŸ” Security Features

  • ABHA OAuth2 integration for Indian healthcare
  • Spring Security configuration
  • FHIR metadata compliance with Indian EHR standards
  • Confidentiality tags on FHIR resources

🎯 Use Cases

  1. EMR Integration: Search traditional medicine codes for clinical documentation
  2. ICD-11 Mapping: Convert traditional codes to WHO ICD-11 TM2
  3. Symptom Search: Find codes based on patient symptoms/descriptions
  4. ABHA Authentication: Secure access using Indian health ID system
  5. FHIR Compliance: Standardized healthcare data exchange

πŸš€ Development Status

  • βœ… Core MongoDB integration working
  • βœ… FHIR endpoints active
  • βœ… ABHA authentication implemented
  • βœ… Terminology search functional
  • ⚠️ REST endpoints (commented out in controller)
  • βœ… Test scripts available

Built for Indian Healthcare | FHIR R4 Compliant | Traditional Medicine Ready

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •