The following is a set of guidelines for contributing to the hl7-at-fhir-profiles project and its packages, which are hosted in the HL7-Austria organization on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
- Contributing to hl7-at-fhir-profiles
This project and everyone participating in it is governed by HL7 Austria FHIR Technical Committee. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].
There are multiple ways of how one can contribute to the efforts of the TC FHIR from HL7 Austria:
- Active participation on the HL7 Austria TC FHIR conference calls
- Creating feature requests or bug reports on github
- For questions and broader discussions, use the TC-Austria channel on Zulip
- For reporting bugs the TC FHIR created an issue template for github, it can be found here and is available automatically if a new issue is created.
- Please make sure if there isn't already an open or closed github issue in the HL7 Austria repository for the problem that you are facing. If the problem isn't directly related to HL7 Austria FHIR profiles or extensions but is more general, please also make sure that it hasn't be dealt with on the official [FHIR Chat] (https://chat.fhir.org).
- In order to create a good bug report you will be asked to fill out a couple of questions concerning your bug, which are necessary for the TC FHIR in order to address the stated problem most effectively.
Bug Criteria | Description |
---|---|
Real Submitter | Who ist the real submitter, in case the creation of the issue was done by proxy. |
Resource(s)/Profiles incl. Version | Which resources or profiles are affected by this bug report? |
Priority | Priority of this bug report (Blocker, Critical, Major, Minor, Trivial). |
Describe the bug | A clear and concise description of what the bug is. |
To Reproduce | Steps to reproduce the behavior. |
Expected behavior | A clear and concise description of what you expected to happen. |
- For requesting new Profiles or Extensions or features in general the TC FHIR created a feature request template for github, it can be found here and is available automatically if a new issue is created.
- Alternatively a new Profile or an Extension can be requested by sending an email to tc-fhir
- Use the issue to describe the intended use case and if applicable state some examples.
- In order to create a good feature request you will be asked to fill out a couple of questions concerning your request, which are necessary for the TC FHIR in order to address the desired feature most effectively.
Request Criteria | Description |
---|---|
Real Submitter | Who ist the real submitter, in case the creation of the issue was done by proxy. |
Resource(s)/Profiles incl. Version | Which resources or profiles are affected by this bug report? |
Priority | Priority of this request (Blocker, Critical, Major, Minor, Trivial). |
Is your feature request related to a problem? Please describe. | A clear and concise description of what the problem is. |
Describe the solution you'd like | A clear and concise description of what you want to happen. |
Describe alternatives you've considered | A clear and concise description of any alternative solutions or features you've considered. |
Label name | Description |
---|---|
discussion |
needs to be discussed in a meeting of the technical committee FHIR in HL7 Austria |
review |
a solution to an open issue is provided, however the solution has to be reviewed before closing respective issue |
bug |
marks a bug in the implementation |
enhancement |
propose a new feature or a change in an existing profile/extension |
blocked |
issues marked with blocked are dependent on other issue still in progress |
hot |
marks issues with high priority, these are only assigned by the HL7 Austria TC-FHIR, any invalid use on issues will be removed without discussion |
A commit message must start with the corresponding ticket number in GitHub (#TICKETNUMBER) each commit message must have a description which should be in present tense and use imperative voice
In general the HL7 FHIR naming conventions apply. Essentially these conventions ask for consistency and precision (i.e. minimizing ambiguity, while ensuring the meaning is easily understood) when naming fields, resources or operations.
Most of these guidelines are suggestions, except the following rules that must be followed:
- be U.S. English (spelled correctly!)
- be expressed as a noun, with a preceding adjective where necessary to clarify the semantics and to make unique
- not make use of trade-marked terms
- case style must be followed:
- resources must be lower case - ex.
at-core-patient
, patient resource is all lower case - elements must be lowerCamelCase - ex.
at-core-ext-address-additionalInformation
, the element address.additionalInformation is lowerCamelCase - operations must be lower case - e.
at-core-exampleoperation
example operation is all lower case
- resources must be lower case - ex.
The StructureDefintion Id of a profile follows a prefix pattern, meaning that a name from left to right goes from specific to generic. It uses UpperCamelCase.
ProfileName = [Realm-], Use-, ParentProfile
Realm = Is this profile supposed to be used in a realm? Then use the countryCode1
Use = What is this profile used for? lower case
ParentProfile = Which profile does this profile extend from? lower case
Example: Patient used in Austria, for ELGA.
Realm = Austria -> at- (country code)
Use = HL7 Austria FHIR Core -> core-
ParentProfile = Patient -> patient
at-core-patient
Example: Immunization information for ELGA
Realm = Austria -> at-
Use = ELGA -> elga-
ParentProfile = Immunization -> immunization
at-elga-immunization
The StructureDefintion Id of an extension follows a suffix pattern, meaning that a name from left to right goes from generic to specific.
ExtensionName = [Realm-], Use-, ext- ProfileItIsFor-, FieldItAdds
Realm = Is this profile supposed to be used in a realm? Then use the countryCode1
Use = What is this profile used for? lower case
ext- = indication that this is an Extension lower case
ProfileItIsFor = Either Base Profile or Profile previously defined (optional if extension can occur anywhere -> Ex. NullFlavor), without the Realm. lower case
FieldItAdds = unique naming for field lowerCamelCase
Example: Religions for a patient registered in Austria
Realm = Austria -> at-
Use = HL7 Austria FHIR Core -> core-
Profile = Patient -> patient-
FieldItAdds = Religion -> religion
at-core-ext-patient-religion
Example: Extra field in Address
Realm = Austria -> at-
Use = HL7 Austria FHIR Core -> core-
Profile = Address -> address
FieldItAdds = Additional Information -> additionalInformation
at-core-ext-address-additionalInformation
HL7 International is documenting the decision it makes on issues in it's ticket tracker tool gforge. For HL7 Austria we've decided to use their way of documenting decisions for our github issues as well. Since github issues don't provide any forms to fill out certain attributes for an issue it was decided to document the decision criteria as a comment for each issue with the following attributes:
- Motion: Exact wording of the motion which will be moved.
- Change Type: describes the severity of the proposed change -> HL7 International categories (Any, None, Non-substantive, Compatible-substantive, Non-compatible)
- (Ballot) Resolution: final resolution -> HL7 International (ballot) categories (Persuasive, Persuasive with Mod, ...)
- Mover/Seconder: For-Against-Abstain:
Since github issues cannot be created automatically out of HL7 Austria Ballot results, it was decided to document the Ballot information as a comment for each relevant issue with the following attributes:
-
Ballot Info: from which ballot it came from
-
Ballot Weight: categories (and codes) from HL7 Austria ballots for a comment
- NEG-S (negative, serious), NEG-G (negative, minor), Z-V (approval with proposal), Z-T (approval - typo), Z-F (approval with question), Z-K (approval with comment)
We actively monitor the issues coming in through the GitHub repository at https://github.com/HL7Austria/HL7-AT-FHIR-Core-R4/issues. You are welcome to register your bugs and feature suggestions there. For questions and broader discussions, we use the TC-Austria channel on Zulip.
Footnotes
-
country codes are ISO 3166-3 in the Alpha-2 code format, all lowercase. ↩ ↩2