US Core Implementation Guide
7.0.0-ballot - Ballot United States of America flag

This page is part of the US Core (v7.0.0-ballot: STU7 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. The current version which supersedes this version is 6.1.0. For a full list of available versions, see the Directory of published versions

Resource Profile: US Core Organization Profile

Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization Version: 7.0.0-ballot
Standards status: Trial-use Maturity Level: 3 Computable Name: USCoreOrganizationProfile

Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

This profile sets minimum expectations for the Organization resource to searching for and fetching an Organization associated with a patient or provider to promote interoperability and adoption through common implementation. It identifies which core elements, extensions, vocabularies, and value sets SHALL be present and constrains the way the elements are used and constrains the way the elements are used when using the profile. It provides the floor for standards development for specific use cases.

Example Usage Scenarios:

The following are example usage scenarios for this profile:

  • Query by organization name or NPI

Mandatory and Must Support Data Elements

The following data-elements must always be present (Mandatory definition) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Views below provides the formal summary, definitions, and terminology requirements.

Each Organization Must Have:

  1. A status of the organization (i.e., whether is still active )
  2. A name

Each Organization Must Support:

  1. An identifier*
  2. A list of contact information
  3. An address*

*see guidance below

Profile Specific Implementation Guidance:

  • *Systems SHALL support National Provider Identifier (NPI) for organizations and SHOULD support Clinical Laboratory Improvement Amendments (CLIA) for laboratories and the National Association of Insurance Commissioners NAIC Company code (sometimes called “NAIC Number” or “cocode”) for payers.
  • * Systems SHOULD follow the Project US@ Technical Specification for Patient Addresses Final Version 1.0 as the standard style guide for Organization.address.line and  Organization.address.city.

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from Organization

NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization 0..*OrganizationA grouping of people or organizations with a common purpose
... Slices for identifier S0..*IdentifierIdentifies this organization across multiple systems
Slice: Unordered, Open by pattern:$this
.... identifier:All Slices Content/Rules for all slices
..... system S0..1uriThe namespace for the identifier value
..... value S0..1stringThe value that is unique
.... identifier:NPI SC0..*IdentifierNational Provider Identifier (NPI)
us-core-16: NPI must be 10 digits
us-core-17: NPI check digit must be valid (Luhn algorithm check)
Required Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: http://hl7.org/fhir/sid/us-npi
.... identifier:CLIA C0..*IdentifierClinical Laboratory Improvement Amendments (CLIA) Number for laboratories
us-core-18: CLIA number must be 10 digits with a letter "D" in third position
Required Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: urn:oid:2.16.840.1.113883.4.7
.... identifier:NAIC C0..*IdentifierNAIC Code
us-core-19: NAIC must be 5 digits
Required Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: urn:oid:2.16.840.1.113883.6.300
... active S1..1booleanWhether the organization's record is still in active use
... name S1..1stringName used for the organization
... telecom S0..*ContactPointA contact detail for the organization
.... system S0..1codephone | fax | email | pager | url | sms | other
.... value S0..1stringThe actual contact point details
... address S0..*AddressAn address for the organization
.... line S0..4stringStreet name, number, direction & P.O. Box etc.
Example General: 49 MEADOW ST
.... city S0..1stringName of city, town etc.
Example General: EVERYTOWN
.... state S0..1stringSub-unit of country (abbreviations ok)
Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes.


Example General: OK
.... postalCode S0..1stringUS Zip Codes
Example General: 74047
.... country S0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Organization.address.stateextensibleUspsTwoLetterAlphabeticCodes (a valid code from https://www.usps.com/)

Constraints

IdGradePath(s)DetailsRequirements
us-core-16errorOrganization.identifier:NPINPI must be 10 digits
: value.matches('^[0-9]{10}$')
us-core-17errorOrganization.identifier:NPINPI check digit must be valid (Luhn algorithm check)
: (((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger()) + 24)mod 10=0)
us-core-18errorOrganization.identifier:CLIACLIA number must be 10 digits with a letter "D" in third position
: value.matches('^[0-9]{2}D[0-9]{7}$')
us-core-19errorOrganization.identifier:NAICNAIC must be 5 digits
: value.matches('^[0-9]{5}$')
NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization C0..*OrganizationA grouping of people or organizations with a common purpose
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... Slices for identifier SΣC0..*IdentifierIdentifies this organization across multiple systems
Slice: Unordered, Open by pattern:$this
.... identifier:All Slices Content/Rules for all slices
..... use ?!Σ0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... system SΣ0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value SΣ0..1stringThe value that is unique
Example General: 123456
.... identifier:NPI SΣC0..*IdentifierNational Provider Identifier (NPI)
us-core-16: NPI must be 10 digits
us-core-17: NPI check digit must be valid (Luhn algorithm check)

Required Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: http://hl7.org/fhir/sid/us-npi
.... identifier:CLIA ΣC0..*IdentifierClinical Laboratory Improvement Amendments (CLIA) Number for laboratories
us-core-18: CLIA number must be 10 digits with a letter "D" in third position

Required Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: urn:oid:2.16.840.1.113883.4.7
.... identifier:NAIC ΣC0..*IdentifierNAIC Code
us-core-19: NAIC must be 5 digits

Required Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: urn:oid:2.16.840.1.113883.6.300
... active ?!SΣ1..1booleanWhether the organization's record is still in active use
... name SΣC1..1stringName used for the organization
... telecom SC0..*ContactPointA contact detail for the organization
.... system SΣC0..1codephone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

.... value SΣ0..1stringThe actual contact point details
.... use ?!Σ0..1codehome | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

... address SC0..*AddressAn address for the organization
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... line SΣ0..4stringStreet name, number, direction & P.O. Box etc.
This repeating element order: The order in which lines should appear in an address label
Example General: 137 Nowhere Street
Example General: 49 MEADOW ST
.... city SΣ0..1stringName of city, town etc.
Example General: Erewhon
Example General: EVERYTOWN
.... state SΣ0..1stringSub-unit of country (abbreviations ok)
Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes.


Example General: OK
.... postalCode SΣ0..1stringUS Zip Codes
Example General: 9132
Example General: 74047
.... country SΣ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Organization.identifier.userequiredIdentifierUse
Organization.telecom.systemrequiredContactPointSystem
Organization.telecom.userequiredContactPointUse
Organization.address.userequiredAddressUse
Organization.address.stateextensibleUspsTwoLetterAlphabeticCodes (a valid code from https://www.usps.com/)

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorOrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorOrganizationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceOrganizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
org-1errorOrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
: (identifier.count() + name.count()) > 0
org-2errorOrganization.addressAn address of an organization can never be of use 'home'
: where(use = 'home').empty()
org-3errorOrganization.telecomThe telecom of an organization can never be of use 'home'
: where(use = 'home').empty()
us-core-16errorOrganization.identifier:NPINPI must be 10 digits
: value.matches('^[0-9]{10}$')
us-core-17errorOrganization.identifier:NPINPI check digit must be valid (Luhn algorithm check)
: (((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger()) + 24)mod 10=0)
us-core-18errorOrganization.identifier:CLIACLIA number must be 10 digits with a letter "D" in third position
: value.matches('^[0-9]{2}D[0-9]{7}$')
us-core-19errorOrganization.identifier:NAICNAIC must be 5 digits
: value.matches('^[0-9]{5}$')
NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization C0..*OrganizationA grouping of people or organizations with a common purpose
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... Slices for identifier SΣC0..*IdentifierIdentifies this organization across multiple systems
Slice: Unordered, Open by pattern:$this
.... identifier:All Slices Content/Rules for all slices
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system SΣ0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value SΣ0..1stringThe value that is unique
Example General: 123456
..... period Σ0..1PeriodTime period when id is/was valid for use
..... assigner Σ0..1Reference(Organization)Organization that issued id (may be just text)
.... identifier:NPI SΣC0..*IdentifierNational Provider Identifier (NPI)
us-core-16: NPI must be 10 digits
us-core-17: NPI check digit must be valid (Luhn algorithm check)

Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... use0..1codeusual | official | temp | secondary | old (If known)
..... type0..1CodeableConceptDescription of identifier
..... system1..1uriThe namespace for the identifier value
Fixed Value: http://hl7.org/fhir/sid/us-npi
..... value0..1stringThe value that is unique
..... period0..1PeriodTime period when id is/was valid for use
..... assigner0..1Reference(Organization)Organization that issued id (may be just text)
.... identifier:CLIA ΣC0..*IdentifierClinical Laboratory Improvement Amendments (CLIA) Number for laboratories
us-core-18: CLIA number must be 10 digits with a letter "D" in third position

Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... use0..1codeusual | official | temp | secondary | old (If known)
..... type0..1CodeableConceptDescription of identifier
..... system1..1uriThe namespace for the identifier value
Fixed Value: urn:oid:2.16.840.1.113883.4.7
..... value0..1stringThe value that is unique
..... period0..1PeriodTime period when id is/was valid for use
..... assigner0..1Reference(Organization)Organization that issued id (may be just text)
.... identifier:NAIC ΣC0..*IdentifierNAIC Code
us-core-19: NAIC must be 5 digits

Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... use0..1codeusual | official | temp | secondary | old (If known)
..... type0..1CodeableConceptDescription of identifier
..... system1..1uriThe namespace for the identifier value
Fixed Value: urn:oid:2.16.840.1.113883.6.300
..... value0..1stringThe value that is unique
..... period0..1PeriodTime period when id is/was valid for use
..... assigner0..1Reference(Organization)Organization that issued id (may be just text)
... active ?!SΣ1..1booleanWhether the organization's record is still in active use
... type Σ0..*CodeableConceptKind of organization
Binding: OrganizationType (example): Used to categorize the organization.


... name SΣC1..1stringName used for the organization
... alias 0..*stringA list of alternate names that the organization is known as, or was known as in the past
... telecom SC0..*ContactPointA contact detail for the organization
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... system SΣC0..1codephone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

.... value SΣ0..1stringThe actual contact point details
.... use ?!Σ0..1codehome | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

.... rank Σ0..1positiveIntSpecify preferred order of use (1 = highest)
.... period Σ0..1PeriodTime period when the contact point was/is in use
... address SC0..*AddressAn address for the organization
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... type Σ0..1codepostal | physical | both
Binding: AddressType (required): The type of an address (physical / postal).


Example General: both
.... text Σ0..1stringText representation of the address
Example General: 137 Nowhere Street, Erewhon 9132
.... line SΣ0..4stringStreet name, number, direction & P.O. Box etc.
This repeating element order: The order in which lines should appear in an address label
Example General: 137 Nowhere Street
Example General: 49 MEADOW ST
.... city SΣ0..1stringName of city, town etc.
Example General: Erewhon
Example General: EVERYTOWN
.... district Σ0..1stringDistrict name (aka county)
Example General: Madison
.... state SΣ0..1stringSub-unit of country (abbreviations ok)
Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes.


Example General: OK
.... postalCode SΣ0..1stringUS Zip Codes
Example General: 9132
Example General: 74047
.... country SΣ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... period Σ0..1PeriodTime period when address was/is in use
Example General: {"start":"2010-03-23","end":"2010-07-01"}
... partOf Σ0..1Reference(Organization)The organization of which this organization forms a part
... contact 0..*BackboneElementContact for the organization for a certain purpose
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... purpose 0..1CodeableConceptThe type of contact
Binding: ContactEntityType (extensible): The purpose for which you would contact a contact party.

.... name 0..1HumanNameA name associated with the contact
.... telecom 0..*ContactPointContact details (telephone, email, etc.) for a contact
.... address 0..1AddressVisiting or postal addresses for the contact
... endpoint 0..*Reference(Endpoint)Technical endpoints providing access to services operated for the organization

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Organization.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Organization.identifier.userequiredIdentifierUse
Organization.identifier.typeextensibleIdentifier Type Codes
Organization.typeexampleOrganizationType
Organization.telecom.systemrequiredContactPointSystem
Organization.telecom.userequiredContactPointUse
Organization.address.userequiredAddressUse
Organization.address.typerequiredAddressType
Organization.address.stateextensibleUspsTwoLetterAlphabeticCodes (a valid code from https://www.usps.com/)
Organization.contact.purposeextensibleContactEntityType

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorOrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorOrganizationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceOrganizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
org-1errorOrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
: (identifier.count() + name.count()) > 0
org-2errorOrganization.addressAn address of an organization can never be of use 'home'
: where(use = 'home').empty()
org-3errorOrganization.telecomThe telecom of an organization can never be of use 'home'
: where(use = 'home').empty()
us-core-16errorOrganization.identifier:NPINPI must be 10 digits
: value.matches('^[0-9]{10}$')
us-core-17errorOrganization.identifier:NPINPI check digit must be valid (Luhn algorithm check)
: (((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger()) + 24)mod 10=0)
us-core-18errorOrganization.identifier:CLIACLIA number must be 10 digits with a letter "D" in third position
: value.matches('^[0-9]{2}D[0-9]{7}$')
us-core-19errorOrganization.identifier:NAICNAIC must be 5 digits
: value.matches('^[0-9]{5}$')

This structure is derived from Organization

Summary

Mandatory: 2 elements
Must-Support: 15 elements

Slices

This structure defines the following Slices:

  • The element Organization.identifier is sliced based on the value of pattern:$this

Maturity: 3

Differential View

This structure is derived from Organization

NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization 0..*OrganizationA grouping of people or organizations with a common purpose
... Slices for identifier S0..*IdentifierIdentifies this organization across multiple systems
Slice: Unordered, Open by pattern:$this
.... identifier:All Slices Content/Rules for all slices
..... system S0..1uriThe namespace for the identifier value
..... value S0..1stringThe value that is unique
.... identifier:NPI SC0..*IdentifierNational Provider Identifier (NPI)
us-core-16: NPI must be 10 digits
us-core-17: NPI check digit must be valid (Luhn algorithm check)
Required Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: http://hl7.org/fhir/sid/us-npi
.... identifier:CLIA C0..*IdentifierClinical Laboratory Improvement Amendments (CLIA) Number for laboratories
us-core-18: CLIA number must be 10 digits with a letter "D" in third position
Required Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: urn:oid:2.16.840.1.113883.4.7
.... identifier:NAIC C0..*IdentifierNAIC Code
us-core-19: NAIC must be 5 digits
Required Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: urn:oid:2.16.840.1.113883.6.300
... active S1..1booleanWhether the organization's record is still in active use
... name S1..1stringName used for the organization
... telecom S0..*ContactPointA contact detail for the organization
.... system S0..1codephone | fax | email | pager | url | sms | other
.... value S0..1stringThe actual contact point details
... address S0..*AddressAn address for the organization
.... line S0..4stringStreet name, number, direction & P.O. Box etc.
Example General: 49 MEADOW ST
.... city S0..1stringName of city, town etc.
Example General: EVERYTOWN
.... state S0..1stringSub-unit of country (abbreviations ok)
Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes.


Example General: OK
.... postalCode S0..1stringUS Zip Codes
Example General: 74047
.... country S0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Organization.address.stateextensibleUspsTwoLetterAlphabeticCodes (a valid code from https://www.usps.com/)

Constraints

IdGradePath(s)DetailsRequirements
us-core-16errorOrganization.identifier:NPINPI must be 10 digits
: value.matches('^[0-9]{10}$')
us-core-17errorOrganization.identifier:NPINPI check digit must be valid (Luhn algorithm check)
: (((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger()) + 24)mod 10=0)
us-core-18errorOrganization.identifier:CLIACLIA number must be 10 digits with a letter "D" in third position
: value.matches('^[0-9]{2}D[0-9]{7}$')
us-core-19errorOrganization.identifier:NAICNAIC must be 5 digits
: value.matches('^[0-9]{5}$')

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization C0..*OrganizationA grouping of people or organizations with a common purpose
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... Slices for identifier SΣC0..*IdentifierIdentifies this organization across multiple systems
Slice: Unordered, Open by pattern:$this
.... identifier:All Slices Content/Rules for all slices
..... use ?!Σ0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... system SΣ0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value SΣ0..1stringThe value that is unique
Example General: 123456
.... identifier:NPI SΣC0..*IdentifierNational Provider Identifier (NPI)
us-core-16: NPI must be 10 digits
us-core-17: NPI check digit must be valid (Luhn algorithm check)

Required Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: http://hl7.org/fhir/sid/us-npi
.... identifier:CLIA ΣC0..*IdentifierClinical Laboratory Improvement Amendments (CLIA) Number for laboratories
us-core-18: CLIA number must be 10 digits with a letter "D" in third position

Required Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: urn:oid:2.16.840.1.113883.4.7
.... identifier:NAIC ΣC0..*IdentifierNAIC Code
us-core-19: NAIC must be 5 digits

Required Pattern: At least the following
..... system1..1uriThe namespace for the identifier value
Fixed Value: urn:oid:2.16.840.1.113883.6.300
... active ?!SΣ1..1booleanWhether the organization's record is still in active use
... name SΣC1..1stringName used for the organization
... telecom SC0..*ContactPointA contact detail for the organization
.... system SΣC0..1codephone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

.... value SΣ0..1stringThe actual contact point details
.... use ?!Σ0..1codehome | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

... address SC0..*AddressAn address for the organization
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... line SΣ0..4stringStreet name, number, direction & P.O. Box etc.
This repeating element order: The order in which lines should appear in an address label
Example General: 137 Nowhere Street
Example General: 49 MEADOW ST
.... city SΣ0..1stringName of city, town etc.
Example General: Erewhon
Example General: EVERYTOWN
.... state SΣ0..1stringSub-unit of country (abbreviations ok)
Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes.


Example General: OK
.... postalCode SΣ0..1stringUS Zip Codes
Example General: 9132
Example General: 74047
.... country SΣ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Organization.identifier.userequiredIdentifierUse
Organization.telecom.systemrequiredContactPointSystem
Organization.telecom.userequiredContactPointUse
Organization.address.userequiredAddressUse
Organization.address.stateextensibleUspsTwoLetterAlphabeticCodes (a valid code from https://www.usps.com/)

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorOrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorOrganizationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceOrganizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
org-1errorOrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
: (identifier.count() + name.count()) > 0
org-2errorOrganization.addressAn address of an organization can never be of use 'home'
: where(use = 'home').empty()
org-3errorOrganization.telecomThe telecom of an organization can never be of use 'home'
: where(use = 'home').empty()
us-core-16errorOrganization.identifier:NPINPI must be 10 digits
: value.matches('^[0-9]{10}$')
us-core-17errorOrganization.identifier:NPINPI check digit must be valid (Luhn algorithm check)
: (((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger()) + 24)mod 10=0)
us-core-18errorOrganization.identifier:CLIACLIA number must be 10 digits with a letter "D" in third position
: value.matches('^[0-9]{2}D[0-9]{7}$')
us-core-19errorOrganization.identifier:NAICNAIC must be 5 digits
: value.matches('^[0-9]{5}$')

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization C0..*OrganizationA grouping of people or organizations with a common purpose
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... Slices for identifier SΣC0..*IdentifierIdentifies this organization across multiple systems
Slice: Unordered, Open by pattern:$this
.... identifier:All Slices Content/Rules for all slices
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system SΣ0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value SΣ0..1stringThe value that is unique
Example General: 123456
..... period Σ0..1PeriodTime period when id is/was valid for use
..... assigner Σ0..1Reference(Organization)Organization that issued id (may be just text)
.... identifier:NPI SΣC0..*IdentifierNational Provider Identifier (NPI)
us-core-16: NPI must be 10 digits
us-core-17: NPI check digit must be valid (Luhn algorithm check)

Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... use0..1codeusual | official | temp | secondary | old (If known)
..... type0..1CodeableConceptDescription of identifier
..... system1..1uriThe namespace for the identifier value
Fixed Value: http://hl7.org/fhir/sid/us-npi
..... value0..1stringThe value that is unique
..... period0..1PeriodTime period when id is/was valid for use
..... assigner0..1Reference(Organization)Organization that issued id (may be just text)
.... identifier:CLIA ΣC0..*IdentifierClinical Laboratory Improvement Amendments (CLIA) Number for laboratories
us-core-18: CLIA number must be 10 digits with a letter "D" in third position

Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... use0..1codeusual | official | temp | secondary | old (If known)
..... type0..1CodeableConceptDescription of identifier
..... system1..1uriThe namespace for the identifier value
Fixed Value: urn:oid:2.16.840.1.113883.4.7
..... value0..1stringThe value that is unique
..... period0..1PeriodTime period when id is/was valid for use
..... assigner0..1Reference(Organization)Organization that issued id (may be just text)
.... identifier:NAIC ΣC0..*IdentifierNAIC Code
us-core-19: NAIC must be 5 digits

Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... use0..1codeusual | official | temp | secondary | old (If known)
..... type0..1CodeableConceptDescription of identifier
..... system1..1uriThe namespace for the identifier value
Fixed Value: urn:oid:2.16.840.1.113883.6.300
..... value0..1stringThe value that is unique
..... period0..1PeriodTime period when id is/was valid for use
..... assigner0..1Reference(Organization)Organization that issued id (may be just text)
... active ?!SΣ1..1booleanWhether the organization's record is still in active use
... type Σ0..*CodeableConceptKind of organization
Binding: OrganizationType (example): Used to categorize the organization.


... name SΣC1..1stringName used for the organization
... alias 0..*stringA list of alternate names that the organization is known as, or was known as in the past
... telecom SC0..*ContactPointA contact detail for the organization
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... system SΣC0..1codephone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

.... value SΣ0..1stringThe actual contact point details
.... use ?!Σ0..1codehome | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

.... rank Σ0..1positiveIntSpecify preferred order of use (1 = highest)
.... period Σ0..1PeriodTime period when the contact point was/is in use
... address SC0..*AddressAn address for the organization
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... type Σ0..1codepostal | physical | both
Binding: AddressType (required): The type of an address (physical / postal).


Example General: both
.... text Σ0..1stringText representation of the address
Example General: 137 Nowhere Street, Erewhon 9132
.... line SΣ0..4stringStreet name, number, direction & P.O. Box etc.
This repeating element order: The order in which lines should appear in an address label
Example General: 137 Nowhere Street
Example General: 49 MEADOW ST
.... city SΣ0..1stringName of city, town etc.
Example General: Erewhon
Example General: EVERYTOWN
.... district Σ0..1stringDistrict name (aka county)
Example General: Madison
.... state SΣ0..1stringSub-unit of country (abbreviations ok)
Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes.


Example General: OK
.... postalCode SΣ0..1stringUS Zip Codes
Example General: 9132
Example General: 74047
.... country SΣ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... period Σ0..1PeriodTime period when address was/is in use
Example General: {"start":"2010-03-23","end":"2010-07-01"}
... partOf Σ0..1Reference(Organization)The organization of which this organization forms a part
... contact 0..*BackboneElementContact for the organization for a certain purpose
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... purpose 0..1CodeableConceptThe type of contact
Binding: ContactEntityType (extensible): The purpose for which you would contact a contact party.

.... name 0..1HumanNameA name associated with the contact
.... telecom 0..*ContactPointContact details (telephone, email, etc.) for a contact
.... address 0..1AddressVisiting or postal addresses for the contact
... endpoint 0..*Reference(Endpoint)Technical endpoints providing access to services operated for the organization

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Organization.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Organization.identifier.userequiredIdentifierUse
Organization.identifier.typeextensibleIdentifier Type Codes
Organization.typeexampleOrganizationType
Organization.telecom.systemrequiredContactPointSystem
Organization.telecom.userequiredContactPointUse
Organization.address.userequiredAddressUse
Organization.address.typerequiredAddressType
Organization.address.stateextensibleUspsTwoLetterAlphabeticCodes (a valid code from https://www.usps.com/)
Organization.contact.purposeextensibleContactEntityType

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorOrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorOrganizationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceOrganizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
org-1errorOrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
: (identifier.count() + name.count()) > 0
org-2errorOrganization.addressAn address of an organization can never be of use 'home'
: where(use = 'home').empty()
org-3errorOrganization.telecomThe telecom of an organization can never be of use 'home'
: where(use = 'home').empty()
us-core-16errorOrganization.identifier:NPINPI must be 10 digits
: value.matches('^[0-9]{10}$')
us-core-17errorOrganization.identifier:NPINPI check digit must be valid (Luhn algorithm check)
: (((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger()) + 24)mod 10=0)
us-core-18errorOrganization.identifier:CLIACLIA number must be 10 digits with a letter "D" in third position
: value.matches('^[0-9]{2}D[0-9]{7}$')
us-core-19errorOrganization.identifier:NAICNAIC must be 5 digits
: value.matches('^[0-9]{5}$')

This structure is derived from Organization

Summary

Mandatory: 2 elements
Must-Support: 15 elements

Slices

This structure defines the following Slices:

  • The element Organization.identifier is sliced based on the value of pattern:$this

Maturity: 3

 

Other representations of profile: CSV, Excel, Schematron

Notes:


Quick Start


Below is an overview of the required Server RESTful FHIR interactions for this profile - for example, search and read operations - when supporting the US Core interactions to access this profile’s information (Profile Support + Interaction Support). Note that systems that support only US Core Profiles (Profile Only Support) are not required to support these interactions. See the US Core Server CapabilityStatement for a complete list of supported RESTful interactions for this IG.

  • The syntax used to describe the interactions is described here.
  • See the General Requirements section for additional rules and expectations when a server requires status parameters.
  • See the General Guidance section for additional guidance on searching for multiple patients.

US Core Scopes

Servers providing access to organization data SHALL support these US Core SMART Scopes:

Mandatory Search Parameters:

The following search parameters and search parameter combinations SHALL be supported:

  1. SHALL support searching by organization name using the name search parameter:

    GET [base]/Organization?name=[string]

    Example:

    1. GET [base]/Organization?name=Health

    Implementation Notes: Fetches a bundle of all Organization resources that match the name (how to search by string)

  2. SHALL support searching organization based on text address using the address search parameter:

    GET [base]/Organization?address=[string]

    Example:

    1. GET [base]/Organization?address=Arbor

    Implementation Notes: Fetches a bundle of all Organization resources that match the address string (how to search by string)