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).
| Comp | Name | Sub-type | Length | Required | Description |
|---|---|---|---|---|---|
| JCC.1 | Job Code | is | — | R | Coded job role from user-defined table [HL70327] — e.g. RN, MD, RT, BIL. |
| JCC.2 | Job Class | is | — | O | Employment class from user-defined table [HL70328] — typically F (full-time), P (part-time), T (temporary), O (per diem). |
| JCC.3 | Job Description Text | tx | — | O | Free-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 codeFfrom 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 component | FHIR element | Notes |
|---|---|---|
| JCC.1 | PractitionerRole.code.coding | Coded role from the integration's HL70327-aligned ValueSet. Alternatively Practitioner.qualification.code for credential-style roles. |
| JCC.2 | extension 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.3 | PractitionerRole.code.text | Human-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.JCCwith three typed accessors (getJobCode,getJobClass,getJobDescriptionText); the first two returnIS, the third returnsTX. - 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.
Related pages
- CX data type — Extended Composite ID with Check Digit
- STF segment — Staff Identification
- PRA segment — Practitioner Detail
