Class IdType

  • All Implemented Interfaces:
    ca.uhn.fhir.model.api.IElement, Externalizable, Serializable, org.hl7.fhir.instance.model.api.IBase, org.hl7.fhir.instance.model.api.IBaseDatatype, org.hl7.fhir.instance.model.api.IBaseElement, org.hl7.fhir.instance.model.api.IBaseHasExtensions, org.hl7.fhir.instance.model.api.IIdType, org.hl7.fhir.instance.model.api.IPrimitiveType<String>

    public final class IdType
    extends UriType
    implements org.hl7.fhir.instance.model.api.IPrimitiveType<String>, org.hl7.fhir.instance.model.api.IIdType
    This class represents the logical identity for a resource, or as much of that identity is known. In FHIR, every resource must have a "logical ID" which is defined by the FHIR specification as:

    Any combination of upper or lower case ASCII letters ('A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.', with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.)

    This class contains that logical ID, and can optionally also contain a relative or absolute URL representing the resource identity. For example, the following are all valid values for IdType, and all might represent the same resource:

    • 123 (just a resource's ID)
    • Patient/123 (a relative identity)
    • http://example.com/Patient/123 (an absolute identity)
    • http://example.com/Patient/123/_history/1 (an absolute identity with a version id)
    • Patient/123/_history/1 (a relative identity with a version id)

    Note that the 64 character limit applies only to the ID portion ("123" in the examples above).

    In most situations, you only need to populate the resource's ID (e.g. 123) in resources you are constructing and the encoder will infer the rest from the context in which the object is being used. On the other hand, the parser will always try to populate the complete absolute identity on objects it creates as a convenience.

    Regex for ID: [a-z0-9\-\.]{1,64}

    See Also:
    Serialized Form
    • Constructor Detail

      • IdType

        public IdType()
        Create a new empty ID
      • IdType

        public IdType​(long theId)
        Create a new ID using a long
      • IdType

        public IdType​(String theValue)
        Create a new ID using a string. This String may contain a simple ID (e.g. "1234") or it may contain a complete URL (http://example.com/fhir/Patient/1234).

        Description: A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length limit of 36 characters.

        regex: [a-z0-9\-\.]{1,36}

      • IdType

        public IdType​(String theResourceType,
                      BigDecimal theIdPart)
        Constructor
        Parameters:
        theResourceType - The resource type (e.g. "Patient")
        theIdPart - The ID (e.g. "123")
      • IdType

        public IdType​(String theResourceType,
                      Long theIdPart)
        Constructor
        Parameters:
        theResourceType - The resource type (e.g. "Patient")
        theIdPart - The ID (e.g. "123")
      • IdType

        public IdType​(String theResourceType,
                      String theId)
        Constructor
        Parameters:
        theResourceType - The resource type (e.g. "Patient")
        theId - The ID (e.g. "123")
      • IdType

        public IdType​(String theResourceType,
                      String theId,
                      String theVersionId)
        Constructor
        Parameters:
        theResourceType - The resource type (e.g. "Patient")
        theId - The ID (e.g. "123")
        theVersionId - The version ID ("e.g. "456")
      • IdType

        public IdType​(String theBaseUrl,
                      String theResourceType,
                      String theId,
                      String theVersionId)
        Constructor
        Parameters:
        theBaseUrl - The server base URL (e.g. "http://example.com/fhir")
        theResourceType - The resource type (e.g. "Patient")
        theId - The ID (e.g. "123")
        theVersionId - The version ID ("e.g. "456")
      • IdType

        public IdType​(UriType theUrl)
        Creates an ID based on a given URL
    • Method Detail

      • applyTo

        public void applyTo​(org.hl7.fhir.instance.model.api.IBaseResource theResource)
        Specified by:
        applyTo in interface org.hl7.fhir.instance.model.api.IIdType
      • equalsIgnoreBase

        public boolean equalsIgnoreBase​(IdType theId)
        Returns true if this IdType matches the given IdType in terms of resource type and ID, but ignores the URL base
      • getBaseUrl

        public String getBaseUrl()
        Returns the portion of this resource ID which corresponds to the server base URL. For example given the resource ID http://example.com/fhir/Patient/123 the base URL would be http://example.com/fhir.

        This method may return null if the ID contains no base (e.g. "Patient/123")

        Specified by:
        getBaseUrl in interface org.hl7.fhir.instance.model.api.IIdType
      • getIdPart

        public String getIdPart()
        Returns only the logical ID part of this ID. For example, given the ID "http://example,.com/fhir/Patient/123/_history/456", this method would return "123".
        Specified by:
        getIdPart in interface org.hl7.fhir.instance.model.api.IIdType
      • getIdPartAsLong

        public Long getIdPartAsLong()
        Returns the unqualified portion of this ID as a Long, or null if the value is null
        Specified by:
        getIdPartAsLong in interface org.hl7.fhir.instance.model.api.IIdType
        Throws:
        NumberFormatException - If the value is not a valid Long
      • getResourceType

        public String getResourceType()
        Specified by:
        getResourceType in interface org.hl7.fhir.instance.model.api.IIdType
      • getValue

        public String getValue()
        Returns the value of this ID. Note that this value may be a fully qualified URL, a relative/partial URL, or a simple ID. Use getIdPart() to get just the ID portion.
        Specified by:
        getValue in interface org.hl7.fhir.instance.model.api.IIdType
        Specified by:
        getValue in interface org.hl7.fhir.instance.model.api.IPrimitiveType<String>
        Overrides:
        getValue in class PrimitiveType<String>
        See Also:
        getIdPart()
      • getVersionIdPart

        public String getVersionIdPart()
        Specified by:
        getVersionIdPart in interface org.hl7.fhir.instance.model.api.IIdType
      • getVersionIdPartAsLong

        public Long getVersionIdPartAsLong()
        Specified by:
        getVersionIdPartAsLong in interface org.hl7.fhir.instance.model.api.IIdType
      • hasBaseUrl

        public boolean hasBaseUrl()
        Returns true if this ID has a base url
        Specified by:
        hasBaseUrl in interface org.hl7.fhir.instance.model.api.IIdType
        See Also:
        getBaseUrl()
      • hasIdPart

        public boolean hasIdPart()
        Specified by:
        hasIdPart in interface org.hl7.fhir.instance.model.api.IIdType
      • hasResourceType

        public boolean hasResourceType()
        Specified by:
        hasResourceType in interface org.hl7.fhir.instance.model.api.IIdType
      • hasVersionIdPart

        public boolean hasVersionIdPart()
        Specified by:
        hasVersionIdPart in interface org.hl7.fhir.instance.model.api.IIdType
      • isAbsolute

        public boolean isAbsolute()
        Returns true if this ID contains an absolute URL (in other words, a URL starting with "http://" or "https://"
        Specified by:
        isAbsolute in interface org.hl7.fhir.instance.model.api.IIdType
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface org.hl7.fhir.instance.model.api.IBase
        Specified by:
        isEmpty in interface org.hl7.fhir.instance.model.api.IIdType
        Overrides:
        isEmpty in class PrimitiveType<String>
      • isIdPartValid

        public boolean isIdPartValid()
        Specified by:
        isIdPartValid in interface org.hl7.fhir.instance.model.api.IIdType
      • isIdPartValidLong

        public boolean isIdPartValidLong()
        Returns true if the unqualified ID is a valid Long value (in other words, it consists only of digits)
        Specified by:
        isIdPartValidLong in interface org.hl7.fhir.instance.model.api.IIdType
      • isLocal

        public boolean isLocal()
        Returns true if the ID is a local reference (in other words, it begins with the '#' character)
        Specified by:
        isLocal in interface org.hl7.fhir.instance.model.api.IIdType
      • isUrn

        public boolean isUrn()
      • isVersionIdPartValidLong

        public boolean isVersionIdPartValidLong()
        Specified by:
        isVersionIdPartValidLong in interface org.hl7.fhir.instance.model.api.IIdType
      • setValue

        public IdType setValue​(String theValue)
        Set the value

        Description: A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length limit of 36 characters.

        regex: [a-z0-9\-\.]{1,36}

        Specified by:
        setValue in interface org.hl7.fhir.instance.model.api.IIdType
        Specified by:
        setValue in interface org.hl7.fhir.instance.model.api.IPrimitiveType<String>
        Overrides:
        setValue in class PrimitiveType<String>
      • setValueAsString

        public void setValueAsString​(String theValue)
        Set the value

        Description: A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length limit of 36 characters.

        regex: [a-z0-9\-\.]{1,36}

        Specified by:
        setValueAsString in interface org.hl7.fhir.instance.model.api.IPrimitiveType<String>
        Overrides:
        setValueAsString in class PrimitiveType<String>
      • toUnqualified

        public IdType toUnqualified()
        Returns a new IdType containing this IdType's values but with no server base URL if one is present in this IdType. For example, if this IdType contains the ID "http://foo/Patient/1", this method will return a new IdType containing ID "Patient/1".
        Specified by:
        toUnqualified in interface org.hl7.fhir.instance.model.api.IIdType
      • toUnqualifiedVersionless

        public IdType toUnqualifiedVersionless()
        Specified by:
        toUnqualifiedVersionless in interface org.hl7.fhir.instance.model.api.IIdType
      • toVersionless

        public IdType toVersionless()
        Specified by:
        toVersionless in interface org.hl7.fhir.instance.model.api.IIdType
      • withResourceType

        public IdType withResourceType​(String theResourceName)
        Specified by:
        withResourceType in interface org.hl7.fhir.instance.model.api.IIdType
      • withServerBase

        public IdType withServerBase​(String theServerBase,
                                     String theResourceType)
        Returns a view of this ID as a fully qualified URL, given a server base and resource name (which will only be used if the ID does not already contain those respective parts). Essentially, because IdType can contain either a complete URL or a partial one (or even jut a simple ID), this method may be used to translate into a complete URL.
        Specified by:
        withServerBase in interface org.hl7.fhir.instance.model.api.IIdType
        Parameters:
        theServerBase - The server base (e.g. "http://example.com/fhir")
        theResourceType - The resource name (e.g. "Patient")
        Returns:
        A fully qualified URL for this ID (e.g. "http://example.com/fhir/Patient/1")
      • withVersion

        public IdType withVersion​(String theVersion)
        Creates a new instance of this ID which is identical, but refers to the specific version of this resource ID noted by theVersion.
        Specified by:
        withVersion in interface org.hl7.fhir.instance.model.api.IIdType
        Parameters:
        theVersion - The actual version string, e.g. "1". If theVersion is blank or null, returns the same as toVersionless()}
        Returns:
        A new instance of IdType which is identical, but refers to the specific version of this resource ID noted by theVersion.
      • newRandomUuid

        public static IdType newRandomUuid()
        Construct a new ID with with form "urn:uuid:[UUID]" where [UUID] is a new, randomly created UUID generated by UUID.randomUUID()
      • of

        public static IdType of​(org.hl7.fhir.instance.model.api.IBaseResource theResouce)
        Retrieves the ID from the given resource instance
      • fhirType

        public String fhirType()
        Specified by:
        fhirType in interface org.hl7.fhir.instance.model.api.IBase
        Overrides:
        fhirType in class UriType
      • setParts

        public org.hl7.fhir.instance.model.api.IIdType setParts​(String theBaseUrl,
                                                                String theResourceType,
                                                                String theIdPart,
                                                                String theVersionIdPart)
        Specified by:
        setParts in interface org.hl7.fhir.instance.model.api.IIdType