description | Codes that describe application obligations for handling FHIR content. There are three kinds of codes in this code system:
* Qualifier codes: SHALL/SHOULD/MAY
* Functional codes - these describe a functional behavior applications may implement, and have the concept property qualify = true, and must be qualified by one of SHALL, SHOULD, or MAY
* Composite codes - these specialise AggregateConcepts, and have an concept property 'expression' that defines them in terms of a set of functional codes
Functional and Qualifier codes are combined using the syntax ```[modifierCode] ":" [obligationCode]``` e.g. SHALL:will-send
The functional codes are grouped into three different high level categories:
* ResourceProducerObligations - functions that pertain to applications that produce resources (typically from databases or forms)
* ExchangerObligations - functions that pertain to applications that transfer resources between other applications (including FHIR repositories)
* ResourceConsumerObligations - functions that pertain to applications that consume the content of resources and do something with them
Note that applications typically produce and consume resources, whether client, server or something else again, and
many applications transfer resources as well
| Codes that describe application obligations for handling FHIR content. There are five kinds of codes in this code system:
* Categorizer codes: ResourceProducerObligations, ResourcesExchangerObligations, and ResourceConsumerObligations which are used to construct value sets and indicate the contexts in which the obligations apply. Note that many applications will be producers, consumers, and potentially exchangers simultaneously, so there is no need to limit obligations to only one category. These are abstract and cannot be declared as obligations.
* Qualifier codes: SHALL/SHOULD/MAY which convey the 'strength' of an obligation. These are also abstract and cannot be declared as obligations.
* Generic codes - these describe abstract functional obligation behaviors applications may implement, but do not specify a specific strength. They may be organized in a hierarchy where one generic code specializes another. These are also abstract cannot be declared as obligations.
* Leaf obligation codes - these are specific qualified obligations that can be declared by a data element and represent leaf-level obligations. They always inherit from a qualification concept and usually inherit from a functional code concept. These codes *can* be declared as obligations.
* Composite codes - these specialise Leaf obligation codes, inheriting the expectations of multiple concrete obligations. They represent common or externally defined combinations of obligations for ease of reference. These codes can also be declared as obligations. | |