ISO13582-part2: Unterschied zwischen den Versionen
(→Data types) |
(→String ST) |
||
Zeile 164: | Zeile 164: | ||
Example: | Example: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
− | + | <name value="I am a name"/> | |
</syntaxhighlight> | </syntaxhighlight> | ||
Version vom 6. Februar 2012, 18:47 Uhr
Inhaltsverzeichnis
- 1 List of Codes and Enumerations
- 2 Data types
- 2.1 Address AD
- 2.2 Coded Simple Value CS
- 2.3 Encapsulated Data ED
- 2.4 Entity Name for a person EN.PN
- 2.5 Entity Name for a organization EN.ON
- 2.6 Interval of time stamp IVL_TS
- 2.7 String ST
- 2.8 String ST.NT
- 2.9 Object Identifier (dot notation) ST.OID
- 2.10 Object Identifier (asn1 notation) ST.ASN1
- 2.11 Object Identifier (iri notation) ST.IRI
- 2.12 Symbolic name ST.SYMB
- 2.13 Telecommunication TEL
- 2.14 Locatable Resource TEL.URL
- 2.15 Time stamp TS
- 3 Annex A (informative)
- 4 Annex B (informative)
- 5 Annex C (informative): W3C schema for the XML representation
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 / contraints 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.
ed-lc: An element of data type ED SHALL have a language code represented in language and a mediaType of "text/plain" or "text/html". |
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 a organization EN.ON
Example:
<name use="LS">
<part value="Healthy Hospital"/>
<part qualifier="SFX">GmbH</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.
Example:
<name value="I am a name"/>
Object Identifier (dot notation) ST.OID
This is actually a character string without translation (ST.NT) with a certain pattern.
The pattern is:
\{?\s*(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))*\s*\}?
Example:
<oid value="1.2.3.4.5.0.6.7.8.9"/>
The string pattern needs to be checked. |
Object Identifier (asn1 notation) ST.ASN1
This is actually a character string without translation (ST.NT) with a certain pattern.
The pattern is:
\{?\s*(([a-z][a-zA-Z0-9\-]*\s*((\s*(0|[1-9][0-9]*)\s*\))?|(0|[1-9][0-9]*))\s*){2,}\s*\}?
The string pattern needs to be checked. |
Object Identifier (iri notation) ST.IRI
This is actually a character string without translation (ST.NT) with a certain pattern.
The pattern is:
/^[a-z](?:[-a-z0-9\+\.])*:(?:\/\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!\$&'\(\)\*\+,;=:])*@)?(?:\[(?:(?:(?:[0-9a-f]{1,4}:){6}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|::(?:[0-9a-f]{1,4}:){5}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:[0-9a-f]{1,4}:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3})|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|v[0-9a-f]+[-a-z0-9\._~!\$&'\(\)\*\+,;=:]+)\]|(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\.(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}|(?:%[0-9a-f][0-9a-f]|[-a-z0-9\._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!\$&'\(\)\*\+,;=@])*)(?::[0-9]*)?(?:\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!\$&'\(\)\*\+,;=:@]))*)*|\/(?:(?:(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!\$&'\(\)\*\+,;=:@]))+)(?:\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!\$&'\(\)\*\+,;=:@]))*)*)?|(?:(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!\$&'\(\)\*\+,;=:@]))+)(?:\/(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!\$&'\(\)\*\+,;=:@]))*)*|(?!(?:%[0-9a-f][0-9a-f]|[-a-z0-9\._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!\$&'\(\)\*\+,;=:@])))(?:\?(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!\$&'\(\)\*\+,;=:@])|[\x{E000}-\x{F8FF}\x{F0000}-\x{FFFFD}|\x{100000}-\x{10FFFD}\/\?])*)?(?:\#(?:(?:%[0-9a-f][0-9a-f]|[-a-z0-9\._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!\$&'\(\)\*\+,;=:@])|[\/\?])*)?$/i
The string pattern needs to be checked. |
Symbolic name ST.SYMB
This is actually a character string without translation (ST.NT) with a certain pattern.
The pattern is:
^[a-z]([a-z]|[A-Z]|[0-9]|[\-][^-])*([^-])?$
The string pattern needs to be checked. |
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.
Example:
<ref value="http://x.y.org"/>
Time stamp TS
Example:
<applicationDate value="20101205"/>
Annex A (informative)
In informative Annex A, a description possible of sub trees reflecting OID categories for e-health related OIDs is given.
Annex A is a specific description for the registration procedures for e-health related OIDs, and includes a specification of those parts of the OID tree that are known to be used for national and for international e-health applications.
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
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
Are there other types of objects? How far should this recommendation go? |
Annex B (informative)
Informative Annex B specifies the 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.
Basic interactions between OID registries
A set of basic interactions is developed and documented in order to facilitate the exchange of OID-related information between registries. This will include at least the following transactions:
- Share OID list
- Retrieve OID list
Needs to be further elaborated. How far should this go? |
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.[11][12]
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.
Simple mechanisms should 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.
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.
- ↑ ISO 3166-1-alpha-2 country codes
- ↑ ISO 3166 - Codes for the representation of names of countries - The International Organization for Standardization, 3rd edition.
- ↑ ISO 639-2 Codes for the Representation of Names of Languages
- ↑ ISO/FDIS 21090:2010 Health Informatics - Harmonized data types for information interchange
- ↑ IETF RFC 1738 - Uniform Resource Locators (URL)
- ↑ IETF RFC 2396 - Uniform Resource Identifiers (URI): Generic Syntax
- ↑ http://wiki.hl7.org/index.php?title=HL7_OID_Registry_Frequently_Asked_Questions
- ↑ http://www.dimdi.de/dynamic/de/ehealth/oid/verzeichnis.html OID registry Germany
- ↑ http://oid.refdata.ch/ OID registry Switzerland
- ↑ https://www.gesundheit.gv.at/OID_Frontend/ OID registry Austria
- ↑ Chapter 5 of Fielding's dissertation is "Representational State Transfer (REST)".
- ↑ "Fielding discussing the definition of the REST term"