HDS-0001 - openIDL Harmonized Data Store Best Practices
Set Best Practices for the Harmonized Data Store
This is a composite decision for different practices adopted for the HDS
The Standard is Described in Normative Standards Documents Available on the Wiki
Parent: OIDL-0002 - Data Architecture
Context and Problem Statement
The Architecture of openIDL must we well documented in a formal way. Usually, standards organization create a normative document. This document must provide enough information for a reader to understand what is being standardized and enough detail to be used as a guide to understand if the standard is being followed.
Decision Drivers
- the standard must be readable by all members of the openIDL community
- the standard must be available in a document form that can be shared outside the wiki (not with just a link)
- the standard must be version controlled with change log
- the breakdown of possible documentation is
- an overall standard for openidl data handling which describes the injestion/submission, at rest expectations, extraction, network transmission, lifecycle, reporting and sharing
Considered Options
- readme files and code in the github repository
- Use and Industry template like IEEE standard template attached. See attachments.
All Reference Data Rows have Effective and Expiration Date
Validation Rules Verify That Data Loaded Does Not Use Codes Outside their Effective Date Range
Special Value for Beginning of Time is 1900-01-01
Special Value for End of Time is 9999-12-31
Null Values Are Handled on a Per Field Basis
sometimes allow null value
sometimes use special value to describe field is null
only use for string fields
do not use for dates, numerics or boolean fields
Context and Problem Statement
{Describe the context and problem statement, e.g., in free form using two to three sentences or in the form of an illustrative story. You may want to articulate the problem in form of a question and add links to collaboration boards or issue management systems.}
Decision Drivers
- {decision driver 1, e.g., a force, facing concern, …}
- {decision driver 2, e.g., a force, facing concern, …}
- …
Considered Options
- {title of option 1}
- {title of option 2}
- {title of option 3}
- …
Decision Outcome
Chosen option: "{title of option 1}", because {justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force {force} | … | comes out best (see below)}.
Consequences
- Good, because {positive consequence, e.g., improvement of one or more desired qualities, …}
- Bad, because {negative consequence, e.g., compromising one or more desired qualities, …}
- …
Validation
{describe how the implementation of/compliance with the ADR is validated. E.g., by a review or an ArchUnit test}
Pros and Cons of the Options
{title of option 1}
{example | description | pointer to more information | …}
- Good, because {argument a}
- Good, because {argument b}
- Neutral, because {argument c}
- Bad, because {argument d}
- …
{title of other option}
{example | description | pointer to more information | …}
- Good, because {argument a}
- Good, because {argument b}
- Neutral, because {argument c}
- Bad, because {argument d}
- …
More Information
{You might want to provide additional evidence/confidence for the decision outcome here and/or document the team agreement on the decision and/or define when this decision when and how the decision should be realized and if/when it should be re-visited and/or how the decision is validated. Links to other decisions and resources might here appear as well.}