Retrieve Orthopride Hip data from the local database of HD4DP v2

Last updated: 2024-02-15 15:14

Warning

The person with the login for the local database of "HD4DP v2 local" has access to all the data stored in the database. This means that the personal data of the patients will be VISIBLE to that user.

Requirements

URL Local DWH Database: postgresql://<server_ip>:5432/localdwh. If this is not the case, the IT department hosting HD4DP v2 needs to open the port and allow traffic to this port.

URL NIPPIN Database: postgresql://<server_ip>:5432/nippin

Username/Password: The service desk of healthdata.be will forward, via a secure link, the username and password.

Client: Download one of the clients that support PostgreSQL . A list is available here.

Subnet: Provide us with the subnet from where you will contact the database. The database only accepts incoming traffic of known subnets.

Granted privileges

databaseuserprivileges
localdwhdpuserCONNECT/local_dwhmessage:SELECT/local_dwhmessage_key_value:SELECT/local_dwhmessage_key_value_plus:SELECT
nippindpuserCONNECT/nippin_message:SELECT
Privileges table

"data_collection_name" in local database

  • Orthopride Hip registration "Primo-implantation" = OP_HIP_PRIM_IMPLT
  • Orthopride Hip registration "Revision" = OP_HIP_REVIS
  • Orthopride Hip registration "Resection" = OP_HIP_RESEC

Query examples

With the "data_collection_name" and the following information, you will be able to link multiple tables with each other.

  • local_dwhmessage_key_value: Key value table with more information about the registration
  • msg_document_id: document id of your message located in local_dwhmessage table
  • document_id: document id of your registration
  • local_dwhmessage: table where you can find all the registrations
  • local_dwhmessage_key_value_plus: Extra table to define attribute type and value of a key value
  • key_value_id: Key value id linked to the id of the local_dwh_message_key_value
  • local_dwhmessage_key_value:

"local_dwhmessage_key_value" column "msg_document_id" refer to the "document_id" of "local_dwhmessage".

"local_dwhmessage_key_value_plus" column "key_value_id" refer to the id of "local_dwhmessage_key_value".

Query 1: Get all registrations from the last 15 days.

SELECT * from local_dwhmessage WHERE data_collection_name = 'add data_collection_name' and created_on > current_date - interval '15' day;

Query 2: Get all registrations and key value.

SELECT * from local_dwhmessage as ldm left join local_dwhmessage_key_value as ldmkv on ldmkv.msg_document_id = ldm.document_id WHERE ldm.data_collection_name = 'add data_collection_name';

Query 3: Get all registrations, key value and key value plus from.

SELECT * from local_dwhmessage as ldm left join local_dwhmessage_key_value as ldmkv on ldmkv.msg_document_id = ldm.document_id left join local_dwhmessage_key_value_plus as ldmkvp on ldmkvp.key_value_id = ldmkv.id WHERE ldm.data_collection_name = 'add data_collection_name';

Query 4: Get all MyCareNet registrations, key value and key value plus.

SELECT value from local_dwhmessage as ldm left join local_dwhmessage_key_value as ldmkv on ldmkv.msg_document_id = ldm.document_id WHERE ldm.data_collection_name = 'add data_collection_name'and key = 'TX_REGN_CD';

select * from local_dwhmessage_key_value where msg_document_id in ( select msg_document_id from local_dwhmessage_key_value where key = 'TX_REGN_CD' and value = 'use value from first query');

select * from local_dwhmessage where document_id in ( select msg_document_id from local_dwhmessage_key_value where key = 'TX_REGN_CD' and value = 'use value from first query');
Column Type Description
id bigserial PK
message_id varchar(255) Identifier for the message
identification_value text Identification value of the organization that is sending the message
name text Name of the organization that is sending the message
payload text Payload of the message
payload_after_validation text Payload after (xsd-)validation
response text Response to the message (received from myCarenet)
valid boolean Whether the message is valid or not
interface_type varchar(25) Type of interface used for the message (e.g. FILE_SYSTEM or REST)
status varchar(25) Current status of the message (possible states: INVALID (validation against xsd-scheme failed), TO_SEND (ready for sending to myCarenet), SENT (sent to myCarenet), ERROR (something went wrong during sending, e.g. unable to reach myCarenet))
created_on timestamp Timestamp of when the message was created
input_reference varchar(255) Reference for the input message (this is a unique identifier that can be used for debugging/tracing with myCarenet)
issuer text Issuer of the message
postresponse_tack_applies_to text Applies-to value for the TACK post-response (received from myCarenet)
postresponse_tack_id text ID of the TACK post-response (received from myCarenet)
postresponse_tack_reference text Reference for the TACK post-response (received from myCarenet)
postresponse_tack_resultMajor text Result major for the TACK post-response (received from myCarenet)
postresponse_tack_resultMinor text Result minor for the TACK post-response (received from myCarenet)
postresponse_tack_resultMessage text Result message for the TACK post-response (received from myCarenet)
previous_registrationcode varchar(255) Previous registration code for the message (obsolete)
current_registrationcode varchar(255) Current registration code for the message (value will be identical to previous_registrationcode)

Query 5: Connect to the Nippin database postgresql://<server_ip>:5432/nippin (same user/password) to validate the current state and payload for the nippin message based on the registration code.

select * from nippin_message where current_registrationcode = 'use the value of Query 4 (first query)';
This documentation is being updated regularly. We try to provide as correct, complete and clear as possible information on these pages. Nevertheless, if you see anything in the documentation that is not correct, does not match your experience or requires further clarification, please create a request (type : request for information) via our portal (https://sciensano.service-now.com/sp) or send us an e-mail via support.healthdata@sciensano.be to report this documentation issue. Please, do not forget to mention the URL or web address of the page with the documentation issue. We will then adjust the documentation as soon as possible. Thank you!