Huli FHIR Core Implementation Guide (R4)
0.1.0 - Release

Huli FHIR Core Implementation Guide (R4) - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Terminology

Terminology

Code systems and value sets defined by this IG. Standard FHIR R4 terminology (http://hl7.org/fhir/...) is used wherever a suitable international code system exists; Huli-defined CodeSystems are only added when no R4-core or external SDO covers the concept.

Code systems

CodeSystem Scope
HuliCancellationReasonCS Reasons an appointment was cancelled (operational, not the SNOMED-coded clinical reason).
HuliConfirmationStatusCS Patient confirmation lifecycle (pending → confirmed → declined).
HuliEthnicityCS Ethnicity codes used by HuliEthnicity extension (experimental).
HuliOrgServiceCS Organization-service catalog identity (org-service); see Discovery surfaces below.
HuliAddressSourceCS Address-value provenance (address-source, code mx-normativo-nom024).

Value sets

ValueSet Binding
HuliBloodTypeVS extensibleHuliBloodType extension.
HuliCancellationReasonVS extensibleAppointment.cancelationReason (Huli-extended).
HuliConfirmationStatusVS requiredHuliConfirmationStatus extension.
HuliEthnicityVS extensibleHuliEthnicity extension.

Standard FHIR terminology re-used

  • http://hl7.org/fhir/administrative-gender — Patient.gender
  • http://terminology.hl7.org/CodeSystem/v2-0203 — Patient.identifier.type
  • http://snomed.info/sct — Appointment.cancelationReason (clinical)
  • http://loinc.org — Observation.code (vital signs, laboratory)

See profile pages for the exact bindings.

Terminology service (ValueSet/$expand)

The Public API exposes terminology only through ValueSet/$expand — there is no plain ValueSet read/search, and CodeSystem supports read only. Clients expand a canonical ValueSet url to obtain its members, e.g. GET /fhir/R4/ValueSet/$expand?url=https://fhir.huli.ai/r4/ValueSet/observation-loinc.

Each url enforces its own SMART scope at the handler (a $expand against a url whose scope the client lacks is rejected), so terminology access is scoped to the clinical domain the codes belong to:

ValueSet url ($expand) Members Required scope
https://fhir.huli.ai/r4/ValueSet/cancellation-reason Appointment cancellation reasons (SNOMED + Huli-defined) system/Appointment.rs
https://fhir.huli.ai/r4/ValueSet/observation-loinc LOINC codes the API accepts on Observation.code, each carrying a unit and validation min/max bound (see below) system/Observation.rs
https://fhir.huli.ai/r4/ValueSet/mx-country Country codes (MX address model) system/Patient.rs
https://fhir.huli.ai/r4/ValueSet/mx-municipality Mexican municipality catalog system/Patient.rs
https://fhir.huli.ai/r4/ValueSet/mx-locality Mexican locality catalog system/Patient.rs

observation-loinc extensions

Each observation-loinc expansion member carries Huli-defined extensions that tell the client the expected unit and the accepted value range, so a client can validate locally before posting an Observation:

Extension url Carries
https://fhir.huli.ai/r4/StructureDefinition/observation-unit The expected UCUM unit for the code
https://fhir.huli.ai/r4/StructureDefinition/observation-min Minimum accepted value
https://fhir.huli.ai/r4/StructureDefinition/observation-max Maximum accepted value

CodeSystems backing the discovery surfaces

CodeSystem url Scope
https://fhir.huli.ai/r4/CodeSystem/org-service The organization-service catalog identity. The org-service UUID is the code; carried on HealthcareService.type.coding and copied to Appointment.serviceType when booking.
https://fhir.huli.ai/r4/CodeSystem/address-source Provenance of an address value. The single member mx-normativo-nom024 records that the value came from the Mexican normative (NOM-024) catalog.

Scope aliasing for discovery resources

The Stage 1/2 discovery resources do not each define their own scope. They are aliased onto the existing booking and practitioner scopes, so a client already authorized to book or to read practitioners can discover the supporting resources with no extra grant:

Resource(s) Gated by scope
Location, HealthcareService, Schedule, Slot, Device system/Appointment.rs
PractitionerRole system/Practitioner.rs