Article
· 2 hr ago 5m read

Clinical Staff Master Data Management with RESTful APIs and Dynamic Mapping on InterSystems IRIS for Health

Project Overview:

 

The Clinical Staff Master Data Management (CSMDM) system is a full-stack healthcare integration application built on InterSystems IRIS for Health. It centralizes and standardizes clinical staff metadata into a single authoritative repository, exposed through RESTful CRUD APIs and reusable backend methods.

The platform eliminates fragmented lookup tables and hardcoded mappings that commonly cause errors in HL7 and FHIR integration workflows, ensuring data consistency and interface reliability.

Application to Other Domains:

This approach can be applied to other domains such as Financial Services, Insurance, and similar industries by extending existing data models or creating new domain-specific classes based on their data mapping needs. It centralizes master data, standardizes schemas, and uses reusable services to ensure consistent and reliable integrations.

Problem Statement:

In healthcare integration environments, particularly in HL7 and FHIR workflows, clinical staff data often faces the following challenges:

  • Scattered across multiple systems
  • Multiple redundant lookup tables
  • Inconsistent codes leading to invalid messages
  • Increased maintenance due to duplicate mapping tables

Each clinical interface frequently requires multiple identifiers such as: Consultant Code or attending doctor code, Provider ID, GMC Number, Occupation Code, Specialty Code, Department, etc during the HL7 or FHIR based interface design. These issues create operational inefficiency, risk of interface failure, and increased maintenance overhead if not managed properly.

Proposed Solution:

 

The CSMDM system provides a centralized Clinical Staff Master Table and a RESTful API layer, which:

  • Stores all clinical staff metadata in a single persistent table
  • Provides full CRUD operations via REST
  • Supports real-time lookups for integration engines
  • Serves HL7, FHIR, JSON, XML, and file-based interfaces
  • Eliminates redundant lookup tables
  • Offers dynamic methods for clinical data mapping to streamline interface design

REST API Layer

Implemented using %CSP.REST, the API exposes the following endpoints:

HTTP Method Endpoint Function
POST /ClinicalStaff Add a clinical staff record
GET /ClinicalStaff Retrieve all clinical staff records
PUT /ClinicalStaff/:id Update a clinical staff record
DELETE /ClinicalStaff/:id Delete a clinical staff record

Architecture Flow:

  • Frontend: HTML, CSS, Bootstrap, jQuery AJAX
  • REST API Calls
  • IRIS for Health REST Service (%CSP.REST)
  • Business Logic Layer: ObjectScript, JavaScript
  • Persistent Clinical Staff Master Table
  • Dynamic methods for clinical data mapping
    • Example methods and usage are provided in SMDM.CustomDataLookup.Classes.ClinicalStaffMapping
    • Can be directly called during interface development (Code or DTL)

Key Benefits:

  • Single source of clinical staff information
  • Real-time access for integration engines
  • Eliminates duplicate mapping tables
  • Reduces operational maintenance
  • Full CRUD capability via REST APIs -Dynamic mapping for interface design
  • Supports integration intelligence for HL7, FHIR, and multi-format workflows

Test the Application

If everything is configured correctly, the application should load successfully. ⚠️ If you encounter any issues, verify:

  • Web Application configuration
  • Namespace selection
  • Files are properly imported and compiled

📸 Screenshot 1: Web App Landing Page

Below is the landing page of the Web Application after successful configuration and launch. Web App Landing Page

📸 Screenshot 2: Add Staff Record

 

Add Recprd

Add Recprd

📸 Screenshot 3: Update Record

 

Update Record

Update Record

📸 Screenshot 3: Delete Record

 

Delete Recprd

Delete Recprd

🔎 Search Functionality You can search for records using the search bar. Simply enter any of the following based on your requirement:Consultant name, code, GMC number or other relevant keywords.

Clinical Staff Data Mapping

Three methods are implemented in the class: CSMDM.CustomDataLookup.Classes.ClinicalStaffMapping

1️⃣ MapStaffConsult

ClassMethod MapStaffConsult(StaffID As %Integer) As %String

This is a static method.

It maps staff consultation data based on the provided StaffID.

📸 Screenshot:

MapStaffConsult

2️⃣ GetMappingValue

-Method Name : ClassMethod GetMappingValue(getKeyColumn As %String, CValue As %Integer, outputValue As %String) As %String

retrieves a single mapping value based on your requirement.

Allows you to specify:

-getKeyColumn – Key column name

-CValue – Column value

📸 Screenshot: GetMappingValue

3️⃣ GetMappingValues

-Method Name : ClassMethod GetMappingValues(getKeyColumn As %String, CValue As %Integer, mapValues As %String) As %String

-A more dynamic and robust method.

-Allows you to retrieve multiple column values.

-Output is returned in JSON format.

-You can pass multiple column names as output parameters.

📸 Screenshot: GetMappingValue ✅ These methods provide flexible mapping capabilities that can be integrated into HL7, FHIR, JSON, or other interface implementations.

📩 Support -If you need any assistance or support, please feel free to contact me. I’ll be happy to help.

Usage Instructions and Code/Packages

Please refer to the GitHub repository and follow the instructions provided in the README file for installation, and download the required packages for CSMDM-Dynamic-Data-Mapping.  CSMDM-Dynamic-Data-Mapping
 

This is also available on InterSystems Open Exchange :  Intersystems-OpenExchange

📩 Support

If you need any assistance or support, please feel free to ask or contact me via the web comment page. I’ll be happy to help.

 

Conclusion

CSMDM centralizes clinical staff data and provides a robust REST API with full CRUD capabilities—Create, Read, Update, and Delete. This ensures consistent, accurate data across HL7 and FHIR integrations, streamlines interface development, reduces errors, and minimizes operational overhead.

Thank you.

Discussion (0)1
Log in or sign up to continue