Programmer & IT in-charge, NAMO Hospital

I build web applications. mobile apps. APIs and backends. enterprise systems. hospital software.

Full-stack developer running a hospital's software, from patient apps to the servers behind them.

developer.jslive
const yasin = {
  role: "Programmer & IT in-charge",
  at: "NAMO Hospital",
  based: "Silvassa, UT of Dadra & Nagar Haveli " +
    "and Daman & Diu, India",
  languages: [
    "Java", "Python", "JavaScript",
    "TypeScript", "PHP", "SQL",
  ],
  stack: [
    "Spring Boot", "Laravel", "Next.js",
    "React Native", "PostgreSQL",
  ],
  shipping: true,
};
all systems normal
  • Python
  • Java
  • JavaScript
  • TypeScript
  • PHP
  • SQL
  • React.js
  • Next.js
  • Cornerstone3D
  • HTML5
  • CSS3
  • jQuery
  • AJAX
  • Bootstrap
  • Responsive design
  • FastAPI
  • SQLAlchemy (async)
  • Node.js
  • Express.js
  • Spring
  • Spring Boot
  • Hibernate
  • Laravel
  • React Native
  • Android
  • iOS
  • Google Play Console
  • App Store Connect
  • Releases & maintenance
  • RESTful APIs
  • JSON
  • JWT auth
  • AES encryption
  • API encryption
  • RBAC
  • Keycloak
  • OIDC SSO
  • Audit trails
  • HTTPS & SSL
  • Third-party APIs
  • ABDM M1, M2 & M3
  • ABHA
  • HL7
  • ASTM
  • FHIR
  • DICOM
  • DICOMweb (QIDO, WADO, STOW)
  • DIMSE (C-STORE, MWL, MPPS)
  • Storage commitment
  • IHE ATNA
  • PACS
  • RIS
  • HMIS
  • LIS
  • EHR
  • PostgreSQL
  • MySQL
  • Microsoft SQL Server
  • MongoDB
  • Redis
  • MinIO object storage
  • Database design
  • Query optimization
  • Indexing
  • Backup & restore
  • Data migration
  • Performance monitoring
  • Linux
  • Windows Server
  • NGINX
  • Apache Tomcat
  • Reverse proxy
  • SSL/TLS
  • DNS
  • Git
  • GitHub
  • Docker
  • Docker Compose
  • PM2
  • CI/CD
  • Firebase
  • WHM & cPanel
  • Domains & hosting
  • HMIS rollout
  • Patient registration
  • Digital kiosks
  • Queue management
  • Pharmacy management
  • PACS integration
  • Radiology reporting
  • Medical image viewing (MPR, PET/CT)
  • System architecture
  • IT infrastructure
  • Software project management
  • Troubleshooting
  • SEO
  • AI-assisted development
  • Claude Code
  • VB.NET
  • MS Access
  • NetBeans

I transform ideas into powerful, scalable applications—from initial requirements to final deployment. I specialize in full-stack development, with a passion for building innovative healthcare technology solutions.

  • Self-service kiosks

  • Digital signage

  • Web development

  • Mobile apps

01Skills

Languages I ship in

Six languages across the whole stack, from hospital backends and databases to web and mobile front ends, with the frameworks I use and the projects they shipped in.

The full toolkit

101 skills across 14 areas. Click any skill to see where I've used it.

Languages

The six languages featured above.

06

Frontend

Responsive web interfaces for hospital staff and patients.

09

Backend & frameworks

Server-side applications, business logic and services.

08

Mobile

Cross-platform apps, shipped and maintained on both stores.

06

APIs & security

Secure APIs: authentication, encryption and access control.

11

Healthcare standards

Interoperability with national and clinical systems.

15

Databases

Relational and document databases in production.

06

Database administration

Keeping hospital data fast, safe and recoverable.

06

Servers & deployment

Running and securing production servers.

07

DevOps & cloud

Shipping, hosting and keeping services online.

09

Hospital solutions

Digital systems for day-to-day hospital operations.

08

Beyond code

Planning, architecture and running IT for a whole hospital.

05

AI

Tools that speed up how I build.

02

Earlier work

Where I started.

03

02Selected work

Built end to end

Hospital platforms, patient apps and a local business directory, each taken from requirements to release.

  • 02Health Dept, DNH & DD · 2024 – now

    eAarogya - Hospital management information system

    Full-stack rebuild of a government hospital information system that replaces a legacy Spring MVC/JSP app. Used across 148 health facilities, handling about 4,600 OPD visits a day, with 15+ clinical and administrative modules, ABDM integration, encrypted APIs, a config-driven report engine, and on-premise AI on a local Llama 3.2 model so patient data never leaves the hospital network.

  • 03Hospital lab integration

    LIS interface

    A Node.js middleware service that connects lab machines to the hospital database over the local network, so results no longer have to be typed in by hand. It parses streamed ASTM messages, maps each machine's test codes and units to the hospital's own, and saves results in transactions that reject duplicates and roll back on failure. It runs unattended as a standalone Windows executable on lab workstations.

  • 04Amweta Healthtech

    medmora

    A healthcare mobile app for patients. I built the React Native app and its Laravel backend, and managed releases on both the Play Store and the App Store.

  • 05Anweta HealthCare

    OIHMS

    Online Integrated Hospital Management System. I worked across the frontend, the backend and the database, as developer and DBA.

  • 06Shri Vinoba Bhave Civil Hospital

    e-Aarogya and mAarogya

    e-Aarogya is the hospital's web application; I fixed bugs reported by the Ministry and administered its database. I also built mAarogya, the companion app patients use to book appointments and see their medical records and lab results without visiting a counter.

  • 07MCA project, 2018

    NJY Go Search

    A local business directory with a website and an Android app. Owners list their business, users search by name or category, and people get notified when a business in a category they follow posts an offer. It went live and was updated monthly.

03Case study

Personal / independent projectDeployed · in active use

eAarogya PACS

DICOM imaging archive & radiology information system

A production-grade PACS/RIS I designed and built from scratch: a medical imaging archive and radiology workflow system that handles DICOM storage, networking and report sign-off, from the moment a scanner sends an image to the moment a referring clinic reads the signed report.

How it works

Follow one study from the scanner to the referring clinic. The diagram lights up the path each step takes.

Live architecture
  1. Schedule
  2. Acquire
  3. Archive
  4. View
  5. Report
  6. Deliver
MWL · MPPSC-STORE · commitDICOMwebOIDCIntegration APIModalitiesCT · MR · CR · USKeycloakOIDC SSO · JWTReferring clinicsexternal accessDIMSE gatewaypynetdicomFastAPI backendasync · DICOMwebReact viewerCornerstone3DPostgreSQLindex · reportsMinIOpixel dataRedisin-memory
  1. 01

    Schedule

    The modality pulls its worklist over DICOM Modality Worklist and reports progress back with MPPS, so patient and order details arrive without retyping.

    • MWL
    • MPPS
  2. 02

    Acquire

    Scanners push images straight to a custom DIMSE gateway built on pynetdicom. Storage commitment confirms the archive has taken responsibility for every instance.

    • C-STORE
    • Storage commitment
  3. 03

    Archive

    An async FastAPI backend indexes every patient, study, series and instance in PostgreSQL, keeps the pixel data in MinIO object storage, and runs alongside Redis.

    • PostgreSQL
    • MinIO
    • Redis
  4. 04

    View

    Radiologists search and stream studies over DICOMweb into a React viewer built on Cornerstone3D, with MPR reconstruction and PET/CT fusion.

    • QIDO-RS
    • WADO-RS
    • STOW-RS
  5. 05

    Report

    Reports start from a template and move through draft, review and sign-off, with the patient's history alongside. Every action lands in an IHE ATNA-style audit trail.

    • 670+ templates
    • IHE ATNA
  6. 06

    Deliver

    Referring clinics retrieve signed-off reports and images through a dedicated external-integration API, secured with Keycloak SSO and JWT.

    • Integration API
    • OIDC
    • JWT

Inside the system

Diagnostic viewer

Built on Cornerstone3D, with multi-planar reconstruction and PET/CT fusion. Try the fusion toggle.

MPRIllustration
AXW 400 · L 40
CORW 400 · L 40
SAGW 400 · L 40

Reporting workflow

Every report starts from one of 670+ templates and moves through a fixed pipeline, with the patient's history alongside.

  1. Draft
  2. Review
  3. Signed off

Access & audit

Role-based access, Keycloak single sign-on over OIDC, JWT, and an IHE ATNA-style audit trail.

  • Admin
  • Doctor
  • Technologist
  • Viewer
  1. Technologist stored a study
  2. Doctor signed a report
  3. Admin provisioned a user
  4. Viewer opened a study

Accessible by design

Light and dark themes, text scaling, high-contrast and grayscale modes. These buttons work:

Worklist

  • CTChestSigned
  • MRBrainReview
  • CRKneeDraft

Clinic integration

A dedicated external API lets referring clinics retrieve signed-off reports and images.

// illustrative
GET /external/reports/{id}
Authorization: Bearer <jwt>

200 { status: "signed", images: […] }

Production deployment

The whole stack runs as containers under Docker Compose.

$ docker compose up -d
  • PostgreSQLMetadata & reports
  • MinIODICOM object storage
  • RedisIn-memory store
  • KeycloakOIDC single sign-on
  • BackendFastAPI · DICOMweb
  • DIMSE gatewaypynetdicom
  • FrontendReact · served by Nginx

04Case study

Health Dept, Dadra & Nagar Haveli and Daman & DiuIn production · 148 facilities

eAarogya v2

Hospital management information system for a state health department

A full-stack rebuild of a government hospital information system, replacing a legacy Spring MVC/JSP application. It runs every facility from the district hospital down to sub-centres, handling about 4,600 OPD visits a day (peak 7,400).

How it works

Follow one patient visit from the registration counter to the state's reports. The diagram lights up the path each step takes.

Live architecture
  1. Register
  2. Consult
  3. Investigate & treat
  4. Dispense
  5. Bill
  6. Report & link
Encrypted RESTABDM APIsPaymentsWebSocketLocal LLMSQLStaff clientsReact · ElectronABDM gatewayABHA · consentPayment gatewayonline paymentsMobile appReact NativeExpress APIAES-256 · JWTOllamaLlama 3.2 · localReport engineregistry · PDFPostgreSQLrow locksSchedulerABDM linking job
  1. 01

    Register

    The patient is registered at the counter and their ABHA health ID is verified or created through India's national digital health network (ABDM).

    • ABDM
    • ABHA
  2. 02

    Consult

    In the OPD, a local Llama 3.2 model suggests ICD-10 codes, checks prescriptions for safety and takes voice dictation. Patient data never leaves the hospital network.

    • Llama 3.2
    • Ollama
    • ICD-10
  3. 03

    Investigate & treat

    Lab, radiology, IPD and operation theatre orders flow through the same API. The AI summarises results, and the mobile app gets real-time alerts over WebSocket.

    • Lab
    • Radiology
    • WebSocket
  4. 04

    Dispense

    Pharmacy and stores issues run in row-locked transactions, so concurrent issues and returns can never double-count stock.

    • Row locks
    • Set-based SQL
  5. 05

    Bill

    Billing settles at the counter or online through a payment gateway, with Firebase push notifications to the patient.

    • Payment gateway
    • Firebase
  6. 06

    Report & link

    MIS reports come from a config-driven engine, and a scheduled job links each OPD record to ABDM, keeping an audit trail of every attempt.

    • Report engine
    • Scheduled job
    • Audit trail

Inside the system

15+ modules, rebuilt

REST APIs and React screens for the clinical and administrative side of the hospital, ported from Java and MySQL to Node.js and PostgreSQL. Per-row query loops became single set-based SQL queries.

  • OPD
  • IPD
  • Laboratory
  • Pharmacy
  • Stores
  • Billing
  • Operation theatre
  • CSSD
  • Diet
  • Laundry
  • MIS

Stock that can't double-count

Issues and returns lock the rows they touch, so two counters working at once always leave the right balance.

-- illustrative
BEGIN;
SELECT qty FROM stock
  WHERE item_id = $1
  FOR UPDATE;
-- issue, then
COMMIT;

Config-driven reports

Each report is a registry entry served through one API, so a new report needs no new endpoint.

// illustrative
opd_daily: {
  sql: "SELECT …",
  params: ["from", "to"],
  pdf: "landscape"
}

Encrypted in transit

Request and response bodies are AES-256-CBC encrypted between client and server, on top of JWT authentication and per-hospital data scoping.

// illustrative
POST /api/opd/register
Authorization: Bearer <jwt>

{ payload: "9f2c…e71a" }

On-premise AI

A local Llama 3.2 model served by Ollama. Patient data never leaves the hospital network.

  • Clinical suggestions
  • Discharge summaries
  • ICD-10 coding
  • Lab summaries
  • Radiology summaries
  • Prescription safety
  • Voice dictation

National health network

ABDM integration for health IDs, health-record linking and consent-based sharing, plus a payment gateway and Firebase push notifications.

  1. Counter verified an ABHA ID
  2. Scheduler linked an OPD record
  3. Patient granted consent
  4. Audit logged the attempt

Real-time, on every screen

A React Native app with WebSocket alerts for patient tracking and security, a hospital emergency alert and code management system, and standalone HTML5 signage boards for the pharmacy and OPD queues.

  1. Code Blue raised, response team alerted
  2. Tracking patient moved to the ward
  3. Pharmacy token called on the signage board
  4. OPD queue board updated

05Case study

Hospital lab integrationRuns unattended on lab workstations

LIS interface

Lab machine results, straight into patient records

A Node.js middleware service that connects lab machines to the hospital database over the local network. It collects the results each machine streams out, turns them into structured data in the hospital's own codes and units, and saves them safely, so test results no longer have to be typed in by hand.

How it works

Follow one test result from the lab machine to the patient's record. The diagram lights up the path each step takes.

Live architecture
  1. Connect
  2. Collect
  3. Parse
  4. Map
  5. Save
  6. Deliver
ASTM overTCP/IPkeeps alivelookupmessagesrecordstransactionLab machinesanalysers · ASTMWindows servicepkg · unattendedCode tableshospital codesTCP serversocket · bufferASTM parserOrder · ResultMappercodes · unitsDuplicate checkby sample IDPostgreSQLpool · transactionsPatient recordlab results
  1. 01

    Connect

    Each lab machine connects to a TCP socket server running on the lab network, so results flow out as soon as a test finishes.

    • TCP/IP
    • Local network
  2. 02

    Collect

    ASTM messages arrive as a stream, not in one piece. The server buffers what it receives until each message is complete.

    • ASTM
    • Streaming
  3. 03

    Parse

    Order and Result records become structured data: sample ID, test name, value, unit, flags and reference range.

    • Order records
    • Result records
  4. 04

    Map

    The machine's parameter names are mapped to the hospital system's own test codes, and units are converted where needed.

    • Test codes
    • Unit conversion
  5. 05

    Save

    Results are written to PostgreSQL inside a transaction over a connection pool. Duplicate samples are caught, and any failure rolls the whole write back.

    • Transactions
    • Connection pool
  6. 06

    Deliver

    The result shows up in the patient's record. Errors are handled at the socket, parse and process levels, so the service keeps running with no one watching it.

    • Patient record
    • Error handling

Inside the service

From ASTM to structured data

Lab machines speak ASTM, a line-based format of Order and Result records. The parser pulls out six fields from every result.

  • Sample ID
  • Test name
  • Value
  • Unit
  • Flags
  • Reference range
// illustrative
R|1|^^^GLU|5.4|mmol/L|3.9-6.1|N

{ sampleId: "S12345", test: "GLU", value: 5.4, unit: "mmol/L", range: "3.9-6.1", flag: "N" }

The hospital's own codes

Each machine names its tests its own way. A mapping turns them into the hospital system's codes and converts units, so results land correctly in patient records.

// illustrative
GLU: { code: "<hospital code>",
  unit: "mg/dL", factor: 18 }

All or nothing

Every save runs in a PostgreSQL transaction over a connection pool. Partial or repeated records never reach patient data.

  1. Sample new, saved
  2. Sample duplicate, skipped
  3. Write failed, rolled back
  4. Sample new, saved

Runs unattended

Errors are caught at three levels, so one bad message or dropped connection doesn't stop the service.

  • Socket
  • Parse
  • Process
  1. Socket dropped, waiting to reconnect
  2. Parse bad record, logged
  3. Process error caught, still running

One executable

Packaged with pkg as a standalone Windows executable, so a lab workstation needs nothing else installed.

// illustrative
C:\Lab> lis-interface.exe
› listening on the lab network
› lab machine connected
› result saved

06Experience

Where I've worked

  1. Mar 2024 – nowCurrent

    Programmer & IT in-charge

    NAMO Hospital, Silvassa

    Run the hospital's IT and software: HMIS development, ABDM and ABHA integration, PACS and lab integration, patient registration, digital kiosks, queue and pharmacy management, database and server administration, API security, the website and mobile apps, and support for every department.

  2. 3.5 years

    Mobile application & web developer

    Amweta Healthtech

    Built the medmora app in React Native with a Laravel backend, and managed it on the Play Store and App Store.

  3. 1.5 years

    Application developer

    Anweta HealthCare

    Frontend, backend and database work on OIHMS, a hospital management system built with Spring, Hibernate and PostgreSQL.

  4. 7 months

    Project coordinator

    Silvassa Municipal Council

    Gathered requirements and tested the outsourced Complaint Management System and Property Tax Portal.

  5. 1 year

    Software developer

    Shri Vinoba Bhave Civil Hospital

    Developer and DBA on e-Aarogya, fixing bugs reported by the Ministry, and builder of the mAarogya patient app.

07About

Any application, healthcare at heart

I design, develop, and deliver digital solutions of every scale—from web platforms and mobile applications to APIs and enterprise-grade systems. I take ownership of the entire development lifecycle, transforming ideas and requirements into fully functional, scalable, and production-ready applications.

01Healthcare

Healthcare technology is where my expertise runs deepest.

  1. Where it started

    My journey began with debugging and improving software systems at a government hospital.

  2. Growing

    Over time, it evolved into developing complex hospital management systems, integrating healthcare technologies, and building patient-centric mobile applications published on the Google Play Store and Apple App Store.

  3. Today

    Today, I lead the development, management, and modernization of a hospital’s entire digital ecosystem—from enterprise applications and database architecture to server infrastructure, system integrations, and digital health initiatives.

02Across the stack

I’m a developer who understands the bigger picture. Whether it’s designing a database, architecting a backend, building an intuitive user interface, integrating third-party services, or deploying and maintaining production servers, I work confidently across the entire technology stack.

  • Database design
  • Backend architecture
  • Intuitive interfaces
  • Third-party integrations
  • Deployment & servers

I don’t just write code. I build, deploy, manage, and continuously improve complete digital systems—from the first requirement to the final user experience.

Yasin Virani · how I work

08Contact

Have an app in mind? Let's build it.

Web, mobile or backend, healthcare or any other field. I'll take it from the first requirement to the final build.

iyasinvirani@gmail.com
Send an email
What are you building?