NEWFree ROI Calculators — quantify what prior auth and siloed data are costing your organization.Prior Auth ROI Siloed Data ROI
HL7 v2Data Type5 min read

HL7 JCC Data Type: Job Code / Class

The JCC (Job Code/Class) data type was introduced in HL7 v2.3 and expanded in later releases to carry the employment payload that lives alongside a practitioner or staff identification record: a coded job role, a class indicator that distinguishes full-time from part-time and other employment categories, and a free-text job description. JCC is the data type behind STF-19 Employee Job Code/Class and PRA-13, the two fields a credentialing or HR-interface message uses to convey what a person does and how they are employed.

Purpose

A staff directory needs two orthogonal facts about each employee: what role they perform (registered nurse, attending physician, radiology technologist, billing coder) and how they are engaged (full-time employee, part-time, contractor, per diem, locum). JCC packages both with an optional human-readable description so that an HR-to-EHR interface — or an EHR-to-credentialing interface — can transmit the employment context in a single field rather than spreading it across several. Modern profiles also use JCC's description slot to carry the working title that displays on a badge or a roster.

Component table

Source: HAPI HL7v2 v2.8.1 javadocs (JCC).

CompNameSub-typeLengthRequiredDescription
JCC.1Job CodeisRCoded job role from user-defined table [HL70327] — e.g. RN, MD, RT, BIL.
JCC.2Job ClassisOEmployment class from user-defined table [HL70328] — typically F (full-time), P (part-time), T (temporary), O (per diem).
JCC.3Job Description TexttxOFree-text working title or job description, useful when the coded job role is too coarse.

Most-used components

  • JCC.1 Job Code — the coded role; the field credentialing and EHR scheduling systems index on.
  • JCC.2 Job Class — distinguishes full-time, part-time, contractor; required for accurate FTE accounting downstream.
  • JCC.3 Job Description Text — the working title shown to humans (e.g. "Registered Nurse - ICU Float Pool") when HL70327 codes are too coarse.

Where it's used

  • STF-19 Employee Job Code/Class — the field on the master Staff segment that carries the employee's role plus employment class.
  • PRA-13 — practitioner detail field carrying the practitioner's primary job code and class.
  • Site-specific MFN_M02 (Staff Master File Notification) profiles may also surface JCC on extension fields used to track department assignments.

Version differences

  • HL7 v2.3 — JCC introduced with two components (Job Code, Job Class) on the new STF and PRA segments.
  • HL7 v2.5 — Job Description Text (JCC.3) added so senders can transmit a working title without requiring HL70327 to enumerate every variant.
  • HL7 v2.6 / v2.7 — tables [HL70327] and [HL70328] were classified as user-defined, formalizing the expectation that each integration agrees on its own code list.
  • HL7 v2.8 / v2.8.1 — no structural change; HAPI v2.8.1 javadoc reflects the three-component layout.

Common mistakes

  • Treating HL70327 as HL7-defined and rejecting unknown codes — both HL70327 and HL70328 are user-defined tables; an integration must agree the code list with its partner rather than expect a global standard.
  • Sending a working title in JCC.1 instead of JCC.3 — JCC.1 carries a code (RN), JCC.3 carries the title (Registered Nurse - ICU Float).
  • Omitting JCC.2 Job Class on a part-time hire — receivers default to full-time and FTE reporting overcounts.
  • Using uppercase free-text (FULL TIME) in JCC.2 instead of the single-letter code F from HL70328.
  • Treating JCC as a CWE — JCC.1 and JCC.2 are IS (coded value only) with no system identifier, so the integration agreement is the only authority for what each code means.

Examples

Minimal value (job code only):

RN

Full-time RN with working title:

RN^F^Registered Nurse - Full Time

Part-time physician with sub-specialty title:

MD^P^Pediatric Cardiologist - Outpatient Clinic

In context — STF-19 Employee Job Code/Class on a Staff master-file notification:

MSH|^~&|HRIS|MERCY^2.16.840.1.113883.19.5^ISO|EHR|MERCY|20260610105500||MFN^M02^MFN_M02|MSG00211|P|2.8.1
STF|1|999001^^^MERCY&2.16.840.1.113883.19.5&ISO^PRN|SMITH^JANE^Q^^DR^MD|P|F|19720508|A|||||MERCY-DOWNTOWN|||||||RN^F^Registered Nurse - Full Time

Common pitfall — free-text employment class:

STF|1|999001|SMITH^JANE||||||||||MERCY|||||||RN^FULL TIME^Registered Nurse

The receiver expects F per HL70328 and either rejects the message or files it under an unknown class, causing the employee to be excluded from FTE rollups.

FHIR mapping

The v2-to-FHIR IG does not publish a dedicated per-datatype ConceptMap for JCC; mapping is performed at the segment level (STF / PRA) and decomposes into FHIR Practitioner / PractitionerRole elements.

JCC componentFHIR elementNotes
JCC.1PractitionerRole.code.codingCoded role from the integration's HL70327-aligned ValueSet. Alternatively Practitioner.qualification.code for credential-style roles.
JCC.2extension practitionerrole-workingTime (custom)Full-time / part-time class — no first-class FHIR element exists, so most implementations carry it on an extension or on a custom PractitionerRole.extension.
JCC.3PractitionerRole.code.textHuman-readable title.

Engine considerations

  • JCC's component count grew from two (v2.3) to three (v2.5+) — engines parsing legacy v2.3 messages must tolerate a missing third component without erroring.
  • Both HL70327 and HL70328 are user-defined — engines should validate against the integration-specific code list, not a global table; importing the HL7 default list as authoritative will misclassify partner-specific codes.
  • HAPI HL7v2 v2.8.1 generates ca.uhn.hl7v2.model.v281.datatype.JCC with three typed accessors (getJobCode, getJobClass, getJobDescriptionText); the first two return IS, the third returns TX.
  • Round-tripping to FHIR is lossy in both directions: FHIR has no first-class full-time/part-time flag, so JCC.2 must survive on an extension to round-trip back to v2.

How Vorro parses and produces JCC

Vorro models JCC as a JobAssignment with (roleCode, employmentClass, displayTitle). On inbound, JCC.1 is normalized against the partner-specific HL70327 mapping and resolved to an internal role enum; JCC.2 is normalized to one of FULL_TIME, PART_TIME, TEMPORARY, PER_DIEM, CONTRACT; JCC.3 is preserved verbatim as the display title for downstream UIs.

On outbound, Vorro always emits JCC.1 from the curated role registry (refusing to substitute free text when no code is mapped), always emits JCC.2 from HL70328 when employment class is known, and uses JCC.3 to carry the partner-specific working title — so the receiver gets both the structured code for routing and the human-readable label for display.

Sources

← Back to HL7 v2 Guide

Ready to Integrate This Into Your Workflow?

Talk to a Vorro expert about implementing HL7 v2 in your specific environment.

Browse HL7 v2 Guides
HL7 JCC Data Type: Job Code / Class | Vorro Academy | Vorro