===================================== Other (smaller) features of the POCOs ===================================== The ``IIdentifiable`` interface ---------------------------------- All FHIR resources that have an element called ```Identifier`` will have a POCO that implements ``IIdentifiable``, where ``T`` is the type of the ``Identifier`` property. In practice there are only two types used for ``T``, which means that there is a ``IIdentifiable`` and ``IIdentifiable>``. ``IIdentifiable`` derives from the empty marker interface ``IIdentifiable``. There are extension methods ``GetIdentifier()`` and ``TryGetIdentifier()`` available to quickly get the value of an identifier by system, given a POCO that implements ``IIdentifiable``. The ``ICode`` interface -------------------------- The binding of the FHIR model for CQL defines which elements are the "primary code" element for a resource. Often, these are elements called "Code", but designers of the POCO's have sometimes chosen a different name for the element that codifies a POCO. We have used the binding for CQL to identify each such element. A resource that has a primary code will implement ``ICode`` to get and set that code. Currently, ``T`` can be: * ``Code`` * ``CodeableConcept`` * ``List`` * ``FhirString`` * ``DataType`` The ``DataType`` (which is abstract) is used when the coded property is a choice (e.g. many coded elements related to Medication are defined to be Coding or Reference). Although this set is currently limited, the CQL binding might change in the future, so implementers are advised to accomodate for all coded types (code, Coding, CodeableConcept, Quantity), or the data types (string, uri)) to appear here. ``ICode`` derives from the ``ICode`` interface, which has a single method ``ToCodings()`` that returns the coded contents in the form of a list of ``Coding``. Coded types are converted to ``Coding`` as described in https://hl7.org/fhir/terminologies.html#4.1.