PING record

From HiWiki

Jump to: navigation, search

PING Discovery: Pilot implementasjon og utforskning av PING: PING record

This section will explain how the PING Record is structured. The PING Record is the informational structure of PING. All information about a user is stored in the record; This means that creation of a new record also gives a new PING user.

Contents

Record hierarchy

The record is structured highly hierarchical. Each patient has one record that consists of a number of documents of various types. A document can also exist in different versions. This make it easy to track updates in the document. The document is then divided in a header and a body. The header contains information about the author, timestamps, document classification and body description. The last one defines the content in the body. A more detailed explanation of this is given here.

The java classes

In this section we will explain the involved java classes in the record. All the classes can be found in the package org.chip.ping.phr.xml. These are generated from XML for modifiability. The XML-schemas can be found in \model\phr\src\main\resources.

The following diagram shows how the java classes are related to each other.

Image:ping_record.jpg

PingRecordType

This is the main file that contains the record. It contains information about when it was created and when it was last modified. It also contains a list of all the documents in the record.

PingDocumentType

This is the document class of the record. It only contains a list of the different versions of the document.

DocumentVersionType

This is a particular version of a document. It contains the header and the body of the document.

DocumentBodyType

The document body contains the actual information in the document in the form of an Element object. This object has to be unmarshalled to retrieve the information inside.

DocumentHeaderType

The document header contains information about the document version: creation time, when it was last modified, information about the author, information about the author who has updated the document, a document index uniquely identifying the document (different versions of the same document has the same document index), the document classification, the body description, metadata (removed in later revisions) and a variable that state if the version is active or not (not in use?).

DocumentClassificationType

This class defines the type of the document. This is represented as a string URN.

DocumentBodyDescriptionType

This class defines what type of object the Element in the body is. This is done in the QName contentType. It also defines the schema location, and a description.

MetaDataType (Removed in later revisions)

This class represent the meta data in the form of a key and a value. (MetaDataType is removed in newer versions.)

AuthorType

This contains information about the author.

Record content

To be able to represent different content the documents are split on two levels. The first level is the document classification which specifies the kind of document; the second is the body document description which specifies the actual content in the document's body. These are determined in the document's header in the form of the two variables.

Types of documents

A document in the record can be of different types defined in the model. To divide between documents we use classifications. Content in the documents can also vary, for this we have a body description.

Document classification

The document classification defines the document's type. This makes it possible to group the various documents in the record. The classification is based on urns (Uniform Resource Names) that are strings defined in the class org.chip.ping.phr.xml.urns.DocumentClassificationUrns. These are the standard urns in PING. Examples of classifications are APPOINTMENT, CONTACT and LAB_TEST.

Body description

The body description defines what kind of information the body of the document contain. The document body contains an Element that has to be unmarshalled to an Object. The body description says what kind of Object the Element is. This string is also defined as an URN, and the standard types can be found in org.chip.ping.phr.xml.urns.ContentTypeQNames. Examples of body descriptions are equal to the classifications.

Example

Here is an example from William Simons, Technical Architect and Principal Engineer of PING: "An example is a lab document that has been faxed into the record. The document should still be classified as a lab, but its content type is an image (vs. the standard phr lab that we define)." It is important to underline that PING offers standard classifications and the descriptions, and that it is possible to alter both.

Essential documents

When a record is created there are three document classes that are made, and that are essential to the record. The three documents are a credential document, an actor attribute document, and an access policy document. These are generated from XML-schemas located in \model\core\src\main\resources.

Credential document

This document store the password of the user, and is used when the user authorize.

Actor attribute document

This document contains information about who created the record and the role-, group- and proxy list of the record owner.

Access policy document

This document controls the access to the record. In the record there is a policy set that contains a set of policies. Each policy is connected to a list of users, resources and actions, and an effect. The user list consists of the ping id, the resources of document classifications, the actions of urns defining the action, and the effect has either the value DECISION_PERMIT or DECISION_DENY. If any of the three first parameters has the value "null" they will apply to all of that kind, e.g. if the action list is set to "null", the policy will relate to all actions. More about this in Manage Authorization.

Documents

These are the kind of documents that make the whole record worth reading. They all have varying medical and non-medical information that are related to the owner of the record. All these documents are based on XML-schemas located in \model\phr\src\main\resources. PING comes with these types of documents:

Allergy Demographics Equipment Lab test Note Questionnaire
Annotation Directive Family history Medication Problem Radiology
Appointment Discharge summary Immunization Message Procedure Vital
Contact Encounter Insurance Micro(biology) Proxy

In addition there are a few help classes that hold varying information that other classes can utilize:

  • CodingSystem
  • PersonalHealthData
  • Types (different types)