PING packages

From HiWiki

Jump to: navigation, search

PING Discovery: Pilot implementasjon og utforskning av PING -> Implementation -> PING packages

We will here explain how PING packages relate to each other and their function.

PING is built out of multiple packages with spread functionality. Some packages have distinct functionality, while others have ambiguous functions. Because PING is built using the Maven framework the structure of the directories can be difficult to comprehend, and packages often seems lost. Classes often reappear in more than one directory, but they are defined to be in the same package. This is because Maven can make libraries of the different modules, and all the classes in a package are not always necessary.

This diagram shows the packages in the system, and what part they play:

Image:Ping pakkediagram.jpg

We will now explain the function of each package:


PING Client:

  • org.chip.ping.client - Provides the basic functionality for the client.
  • org.chip.ping.ssl - Provides functionality for secure connection for the client.

PING Server PingServlet:

  • org.chip.ping - Exception classes defined for PING.
  • org.chip.ping.server - PingServlet class communication with client.
  • org.chip.ping.server.extension - Extension mechanism for handling client requests.
  • org.chip.ping.server.responder - Provides the logic for processing registered actions and maintaining information about actor sessions.
  • org.chip.ping.server.responder.actionResponders - Responder classes for handling requests.
  • org.chip.ping.xacml - XACML classes for authentication and authorization.
  • org.chip.ping.recordstore - Classes containing methods for caching and accessing the store from client side.
  • org.chip.ping.recordstore.document - How to break up a document of a given type, store it efficiently and filtering of documents.

PING RMI Server Store:

  • org.chip.ping.audit - Classes for creating new Auditers or obtaining existing ones.
  • org.chip.ping.iostore - Abstract classes for creating/aborting transactions and creating a store.
  • org.chip.ping.iostore.berkeleydb - Classes for communicating with the database, receive requests from the Servlet and starting the RMI store.
  • org.chip.ping.iostore.collections
  • org.chip.ping.iostore.extension - A class that "massages" the key/value pairs that go into the store.
  • org.chip.ping.iostore.file - Provides an implementation of a file-system based data storage layer.

PING Talk:

  • org.chip.ping.xml.talk - The communication protocol used by PING. Based on XML generation.
  • org.chip.ping.xml.urns - Classes that defines Uniform Resource Identifiers for the communication.

PING record:

  • Record structure:
    • org.chip.ping.phr.xml.document - Classes that define the document, version, header and body.
    • org.chip.ping.phr.xml.record - Classes that define the record.
  • Medical documents:
    • org.chip.ping.phr.xml.allergy
    • org.chip.ping.phr.xml.annotation
    • org.chip.ping.phr.xml.appointment
    • org.chip.ping.phr.xml.codingsystem
    • org.chip.ping.phr.xml.contact
    • org.chip.ping.phr.xml.demographics
    • org.chip.ping.phr.xml.directive
    • org.chip.ping.phr.xml.dischargesummary
    • org.chip.ping.phr.xml.encounter
    • org.chip.ping.phr.xml.equipment
    • org.chip.ping.phr.xml.familyhistory
    • org.chip.ping.phr.xml.gene
    • org.chip.ping.phr.xml.immunization
    • org.chip.ping.phr.xml.indexedstore
    • org.chip.ping.phr.xml.insurance
    • org.chip.ping.phr.xml.labtest
    • org.chip.ping.phr.xml.medication
    • org.chip.ping.phr.xml.message
    • org.chip.ping.phr.xml.micro
    • org.chip.ping.phr.xml.note
    • org.chip.ping.phr.xml.personalhealthdata
    • org.chip.ping.phr.xml.problem
    • org.chip.ping.phr.xml.procedure
    • org.chip.ping.phr.xml.proxy
    • org.chip.ping.phr.xml.questionnaire
    • org.chip.ping.phr.xml.radiology
    • org.chip.ping.phr.xml.types
    • org.chip.ping.phr.xml.vital
  • Additional support packages:
    • org.chip.ping.phr.xml
    • org.chip.ping.phr.xml.urns - Classes with URI's used in the record.

Utility packages:

  • org.chip.ping.config
  • org.chip.ping.utils
  • org.chip.ping.security

Classes for generating keystore and create accounts.

  • org.chip.ping.xml
  • org.chip.ping.xml.attributes
  • org.chip.ping.xml.audit
  • org.chip.ping.xml.collections
  • org.chip.ping.xml.config
  • org.chip.ping.xml.credentials
  • org.chip.ping.xml.extension
  • org.chip.ping.xml.responder
  • org.chip.ping.xml.responder.init
  • org.chip.ping.xml.security

Other packages not presently used or for testing purposes:

  • org.chip.ping.gene
  • org.chip.ping.integration - Classes made for testing purposes.
  • org.chip.ping.m2plugins - Ping plugins used by Maven 2.
  • org.chip.ping.subscription
  • org.chip.ping.subscription.utils
  • org.chip.ping.subscription.xml.urns