ISO13582-part2: Unterschied zwischen den Versionen

Aus Hl7wiki
Wechseln zu: Navigation, Suche
(RESTful Web Servcies for an Object Identifier Resolution System)
(RESTful Web Servcies for an Object Identifier Resolution System)
Zeile 360: Zeile 360:
 
The suggested calls should be implemented as RESTful Web Services and their parameters are stated as follows.
 
The suggested calls should be implemented as RESTful Web Services and their parameters are stated as follows.
  
 +
===REST ressource specification ===
 
{|class="wikitable"
 
{|class="wikitable"
 
! Resource
 
! Resource

Version vom 17. Februar 2012, 13:51 Uhr

List of Codes and Enumerations

CountryCodes

ISO 3166-1 alpha two letter country codes are used[1][2]. This list states the country names as given in ISO 3166-1 and the corresponding ISO 3166-1-alpha-2 code elements.

LanguageCodes

Reflects the Human Language. Language is specified conformant to RFC 3066 (Tags for the Identification of Languages). The format is

ss[-CC]

where ss is the language code drawn from ISO-639-1[3], and CC is the country code, conformant to ISO-3166 alpha-2.

Example:

en-US

OIDcategory

This enumeration reflects the category of the OID (node, leaf) and possible sub categories.

Level Code Description
0 N node
1 NRA registration authority (RA)
1 NMN structure for the management of OIDs (it is not good practice but we know that some of these nodes in some registries also identify objects, which should not be)
0 L leaf
1 LIO an instance of an object
1 LNS a namespace identifier

OIDstatusCodes

This code reflects the status of the OID. Valid values are:

Level Code Description
0 pending OID assignment pending
0 complete assignment complete
0 retired OID retired/withdrawn
0 unknown status of the OID unknown

ReferenceType

The type of reference covers the following values:

Level Code Description
0 RPLC replaced by OID
0 PREF preferred OID
0 LINK link access (to code and value set tables)
0 IDSD identification scheme documentation

RoleCodes

This covers the kind of role of an authority. Valid values are:

Level Code Description
0 PRI primary
0 SEC secondary
0 OBO on behalf of
0 CON contact person

RoleStatus

This covers the status of role:

Level Code Description
0 active active
0 terminated terminated

Data types

A subset of the ISO 21090 data types[4] is used for the XML representation of data. In some cases additional flavors or constraints are defined.

The following section gives examples and describes the restrictions / constraints on the generic specification.

Address AD

Example:

<addr use="HP">
 <part type="STR" value="Windsteiner Weg"/>
 <part type="BNR" value="54a"/>
 <part type="CNT" code="DEU" codeSystem=" 1.0.3166.1.2" value="D"/>
 <part type="ZIP" value="14165"/>
 <part type="CTY" value="Berlin"/>
</addr>

Coded Simple Value CS

A coded attribute with a simple value. The attribute is always bound to a specific code system mentioned in the section about lists of code systems and enumerations .

Example:

<statusCode code="active"/>

Encapsulated Data ED

In this specification this is either plain text (media type "text/plain") and HTML (media type "text/html") only. A language code is required.

Examples:

<text value="this is plain text" language="en-US" mediaType="text/plain"/>

<text value="dieses ist normaler Text" language="de-DE" mediaType="text/plain"/>

Entity Name for a person EN.PN

Example:

<name use="OR C">
 <part type="GIV" value="Selby"/>
 <part type="FAM" qualifier="SP" value="Butt"/>
 <part type="FAM" value="Hadrian"/>
</name>

Entity Name for an organization EN.ON

Example:

<name use="LS">
  <part value="Healthy Hospital"/>
  <part qualifier="SFX">LLC</part>
</name>

Interval of time stamp IVL_TS

Example:

<validTime>
  <low value="20101201"/>
  <high value="20101224"/>
</validTime>

String ST

A character string, with possible translations.

Example:

<name value="I am a name"/>

String ST.NT

A character string, with no translations allowed.

Object Identifier (dot notation) ST.OID

This is actually a character string without translation (ST.NT) with a certain pattern. The pattern can be found in the Schema for XML representation (see Annex C).

Example:

<oid value="1.2.3.4.5.0.6.7.8.9"/>

Object Identifier (asn1 notation) ST.ASN1

This is actually a character string without translation (ST.NT) with a certain pattern. The pattern can be found in the Schema for XML representation (see Annex C).

Object Identifier (iri notation) ST.IRI

This is actually a character string without translation (ST.NT) with a certain pattern. The pattern can be found in the Schema for XML representation (see Annex C).

Symbolic name ST.SYMB

This is actually a character string without translation (ST.NT) with a certain pattern. The pattern can be found in the Schema for XML representation (see Annex C).

Telecommunication TEL

Example:

<telecom value="tel:+491234567890" use="H WP" capabilities="voice fax"/>

Locatable Resource TEL.URL

This points to a locatable resource, e.g. an internet address (see also: [5][6]).

Example:

<ref value="http://x.y.org"/>

Time stamp TS

Example:

<applicationDate value="20101205"/>

Annex A (informative)

This informative annex includes a specification of those parts of the OID tree that are known to be used for national and for international e-health applications. A description of possible of sub trees reflecting OID categories is given.

HL7 Viewpoint

HL7 International has created a type ontology for the OIDs in the HL7 registry to make it easier for the user community to search for OIDs they may be looking for. This type has nothing to do with ISO standards, or any intrinsic meaning or form of the OID itself. It is only a convenience for the users of this Registry.

The following types have been defined for use in the HL7 OID Registry:

Arc Type Description
.1  HL7 registered internal objects (other than organizational bodies) Type 1 OIDs are used for certain internal administrative functions, and to identify released and published Standards. This includes Version 3 International Releases, Normative Editions, V2.x Standards releases, CDA releases, etc. This is almost never used at this time.
.2 HL7 organizational bodies and groups Type 2 OIDs are only used to identify an HL7 Group, such as a Working Group, or an International Council Member of HL7, such as HL7 Australia. These are created only when a new organizational body is recognized by HL7 International Headquarters.
.3 External (not HL7) group functioning as a Registration Authority Type 3 OIDs are used for organizations that wish to create their own trees of OIDs for their use. If you will be assigning OIDs yourself under the OID that you are applying for, then you should select Type 3. This effectively delegates Registration Authority to your organization for all OIDs under this new Type 3 OID. No one else anywhere will create OIDs under your new root. Every OID created ‘under’ this new root will be considered by HL7 to be an ‘external’ OID, since you will have created it external to the HL7 OID Registry OID assignment software. These may be requested or registered by anyone.

Note that a Type 3 OID identifies an organizational entity, not a particular piece of hardware machinery. It does not have to be a corporation, it could be as small as a single development group building interface software for an NHIN Connect project, for instance. Type 3 OIDs should not be used to identify objects in addition to the organizational entity responsible for creating new OIDs under it.

.4 Registered externally maintained identifier systems and namespaces Type 4 OIDs are used for namespaces for identifiers that are public, and used widely, such as health card numbers, ID numbers assigned by jurisdictional authorities, etc. This is also used for any namespaces you may manage with your own defined OIDs under your own root, such as Medical Record Numbers or Accession Numbers, for example. This type of OID is typically used in the root of the version 3 datatype Instance Identifier.
.5 HL7 Internal Code Systems Type 5 OIDs are used only for HL7 created and maintained Coding Systems, that have been approved through the HL7 V3 Harmonization process. This type is assigned only by the group that applies decisions from the harmonization processes to the HL7 databases. These OIDs are typically used in the codSystem property of an HL7 Version 3 coded datatype.
.6 Registered external coding systems Type 6 is assigned to those OIDs that identify a Coding System or terminology that is created, published, and maintained by any organization outside of HL7. At this time, only an HL7 cochair or OID administrator can assign Type 6 to any OID. This type of OID is typically used in the codeSystem property of an HL7 Version 3 coded datatype.
.7 HL7 published document artifacts Type 7 OIDs are used solely for HL7 published artifacts (not releases of Standards), and are assigned only by members of the HL7 publishing group. This includes tutorial slides, implementation guides, databases, published RIM graphic billboards, Wiki pages, etc.
.8 (deprecated) Type 8 is currently not used.
.9 HL7 Registered conformance profiles Type 9 is used to indicate HL7 Conformance Profiles, published in the HL7 Profile Registry.
.10 HL7 Registered Templates Type 10 OIDs identify published Templates. These are created and registered by the Templates Workgroup, or by HL7 Workgroups that define and publish templates as part of their balloted standards.
.11 HL7 defined and registered Value Sets Type 11 OIDs identify Value Sets that have been created and published by HL7, and have been approved through the HL7 Harmonization processes only. These are used in HL7 Version 3 Model Binding and Context Binding mechanisms, and can only be assigned by members of the group that applies the HL7 Harmonization process approvals to the HL7 databases.
.12 HL7 Version 2.x tables Type 12 indicates that an OID identifies explicitly an HL7 Version 2.x Table, as published in the HL7 Version 2 series of standards. These exist to help facilitate development of translation capabilities between Version 2.x and Version 3/CDA interfaces.
.13 Externally authored and curated Value Sets Type 13 OIDs identify Value Sets that have been created, published, and are maintained by organizations outside of HL7. They may be registered by anyone, and are generally used in Hl7 Version 3 Model Binding and Context Binding mechanisms.
.14 Assignment Ontology node Type 14 OIDs may be used by any Registration Authority to indicate a structural ‘branch’ in the tree that they create under their own root, where the node is not any particular type of OID, the types will be below this node. Normally any node that is not a leaf is a registration authority, but some find that adding levels in the structure of the OIDs they create as Registration Authorities make the administration of the tree a bit easier. Each of the nodes in the HL7 tree that is the root of each of the Types is actually a Type 14 OID.
.15 Small code sets externally defined Type 15 OIDs are used to identify small code lists or sets that are defined and maintained by organizations outside of HL7. Where Value Sets are built upon underlying coding systems, short code lists are often ad-hoc values that are used in various applications, that are not components of a particular terminology or coding system. This type of OID may be used in the codeSystem property of a version 3 coded datatype.
.17 Non-specified type Type 17 OIDs are for any other type of object that does not fall into one of the other Type categories.
.18 HL7 Version 2.8 Coding Systems Type 18 OIDs are specifically for those coding systems that are defined as such in the HL7 Version 2.8 standard. These may only be created by HL7 cochairs.
.19 HL7 Examples Type 19 OIDs are used for published examples; it is a truly meaningless identifier, as it is not to be used for any actual entities. This is the only kind of OID that may not be a unique identifier, i.e. it may refer to more than one object if it appears in different publications or slides. Type 19 OIDs are used ONLY in published examples in documents and slide presentations, and should NEVER appear in any implementation or any HL7 model instance.

ObjectType

Type of object identified by the OID.

HL7 International makes a suggestion[7] for a structure of object types

  • .1 HL7 registered internal objects (other than organizational bodies)
  • .2 HL7 organizational bodies and groups
  • .3 External (not HL7) group functioning as a Registration Authority
  • .4 Registered externally maintained identifier systems and namespaces
  • .5 HL7 Internal Code Systems
  • .6 Registered external coding systems
  • .7 HL7 published document artifacts
  • .9 HL7 Registered conformance profiles
  • .10 HL7 Registered Templates
  • .11 HL7 defined and registered Value Sets
  • .12 HL7 Version 2.x tables
  • .13 Externally authored and curated Value Sets
  • .14 Assignment Ontology node
  • .15 Small code sets externally defined
  • .17 Non-specified type
  • .18 HL7 Version 2.8 Coding Systems
  • .19 HL7 Examples

Recommendations from Practical Use

From a policy perspective it is common practice in several healthcare related (European) OID registries [8] [9] [10] and makes sense to distinguish at least between the following types of OIDs:

  • .3 organizational bodies and groups
  • .4 identifier systems
  • .5 code systems
  • .7 documents
  • .9 conformance profiles
  • .10 templates
  • .11 value sets
  • .19 examples
  • .99 experimental

Annex B (informative)

Informative Annex B specifies the list of use cases of an OID registry/repository and an Object Identifier Resolution System (ORS) for e-health related OIDs based on RESTful Web Services.

Use Cases

A list of OID Registry Use Cases has been defined in order to drive metadata model requirements, and functional requirements for Registry interoperability.

U1: OID Creation where the registry owner is the RA

  • Creation of a new OID in the standard ontological structure
  • Creation of a new OID in a sub-structure

U2: OID Registration

  • Registration where the registry owner created the OID
  • Registration of an OID created elsewhere

U3: OID Withdrawal/Replacement

  • Withdraw an OID created in error with no replacement
  • Withdraw an OID created in error with specified replacement
  • Withdraw an OID registered in error with no replacement
  • Withdraw an OID registered in error with specified replacement
  • Withdraw an OID that is found to be a duplicate, with original specified

U4: OID Metadata Update/Editing

  • Permissions model
  • Distributed effort model
  • Proxies for Editors

U5: OID Information Publication

  • Web presence
  • Internet-accessible API (Web service presence)
  • Full registry output to machine-readable form
  • Full registry output to human-readable form
  • Partial registry output to machine-readable form
  • Partial registry output to human-readable form

U6: OID Information Request

  • Search for the OID of an object
  • Search for the object identified by an OID
  • Search for a list of kinds of OIDs
  • Search for a list of OID based on various sub-criteria, with and without wildcards
    • Those registered by a particular entity
    • Those associated with a type of information object
    • Those associated with implementation guides
    • Those registered during some time period
    • etc.

RESTful Web Servcies for an Object Identifier Resolution System

Representational state transfer (REST) is a style of software architecture for distributed hypermedia systems such as the World Wide Web. The term representational state transfer was introduced and defined in 2000 by Roy Fielding in his doctoral dissertation.

A RESTful web service is implemented using HTTP and the principles of REST. It is a collection of resources, with four defined aspects:

  • the base URI for the web service, such as http://oid.server.org/
  • the Internet media type of the data supported by the web service, in this case either XML or HTML only.
  • the set of operations supported by the web service using HTTP methods, in this case GET only.

This part of annex B recommends a simple mechanism to be provided in order to retrieve lists of OIDs from a registry, details of a particular OID or an extract of the entire OID registry. Various formats should be supported like HTML and the original XML format.

The suggested calls should be implemented as RESTful Web Services and their parameters are stated as follows.

REST ressource specification

Resource Description GET Parameters
OIDIndex retrieves an index of all OIDs in the OID registry in HTML format

format (default, fixed): html

id (optional): an OID

language (optional): language

http://oid.server.org/OIDIndex

gets an HTML table of all OIDs in the registry with links to the details for each OID

http://oid.server.org/OIDIndex?id=1.0.3166.1.2.2

gets an HTML table of OID 1.0.3166.1.2.2 with links to the details for this OID

http://oid.server.org/OIDIndex?id=1.0.3166.1.2.2&language=de-DE

gets an HTML table of OID 1.0.3166.1.2.2 with links to the details for this OID in the German language

RetrieveOID retrieves a particular OID in the OID registry

id (required): an OID

format (optional): html or xml

language (optional): language

http://oid.server.org/RetrieveOID?id=1.0.3166.1.2.2&format=html

gets details of OID 1.0.3166.1.2.2 in HTML format

http://oid.server.org/RetrieveOID?id=1.0.3166.1.2.2&format=html&language=de-DE

gets details of OID 1.0.3166.1.2.2 in HTML format in the German language

http://oid.server.org/RetrieveOID?id=1.0.3166.1.2.2&format=xml

gets details of OID 1.0.3166.1.2.2 in XML format

GetOIDRegistry gets the entire content of the OID registry in XML format

format (default, fixed): xml

http://oid.server.org/GetOIDRegistry

gets the entire content of the OID registry in XML format

Annex C (informative): W3C schema for the XML representation

Informative Annex C references a W3C schema for the XML representation.

  1. ISO 3166-1-alpha-2 country codes
  2. ISO 3166 - Codes for the representation of names of countries - The International Organization for Standardization, 3rd edition.
  3. ISO 639-2 Codes for the Representation of Names of Languages
  4. ISO/FDIS 21090:2010 Health Informatics - Harmonized data types for information interchange
  5. IETF RFC 1738 - Uniform Resource Locators (URL)
  6. IETF RFC 2396 - Uniform Resource Identifiers (URI): Generic Syntax
  7. http://wiki.hl7.org/index.php?title=HL7_OID_Registry_Frequently_Asked_Questions
  8. http://www.dimdi.de/dynamic/de/ehealth/oid/verzeichnis.html OID registry Germany
  9. http://oid.refdata.ch/ OID registry Switzerland
  10. https://www.gesundheit.gv.at/OID_Frontend/ OID registry Austria