This page is part of the Argonaut Data Query Implementation Guide (v1.0.0: Release) based on FHIR R2. This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
This section outlines important definitions and interpretations used in the this IG.
In the context of Argonaut, Supported on any data element SHALL be interpreted as follows:
Argonaut Requestors SHALL be able to process resource instances containing data elements asserting missing information.
The conformance verbs used in this IG are defined in FHIR Conformance Rules.
Extensible binding to a value set definition for this IG means that if the data type is CodeableConcept, then one of the coding values SHALL be from the specified value set if a code applies, but if no suitable code exists in the value set, alternate code(s) may be provided in its place. If only text available, then just text may be used.
For this IG, we have defined the Extensible + Max-ValueSet binding to allow for either a code from the defined value set or text if the code is not available. (for example, legacy data). This means,unlike a regular extensible binding, alternate code(s) are not permitted and a text value SHALL be supplied if the code is not available. However, multiple codings (translations) are allowed as is discussed below.
Example: Immunization resource vaccineCode’s CVX coding - the source only has the text “4-way Influenza” and no CVX code.
/{
"resourceType": "Immunization",
...
"vaccineCode": {
"text":"4-way Influenza"
},
...
}
Required binding to a value set definition for this IG means that one of the codes from the specified value set SHALL be used. For CodeableConcept you may have additional codings elements as translations as is discussed below. If only text is available or the local (proprietary, system) cannot be mapped to one of the required codes the The core specification provides guidance which we have summarized:
Note that is will still be ambiguous when using a status based queries
Example: AllergyIntolerance resource with a status that is text only or cannot be mapped to the status value set.
/{
"resourceType”:“AllergyIntolerance”,
...
“_status”:{
“url” : “[http://hl7.org/fhir/StructureDefinition/data-absent-reason]”,
“valueCode” : “unsupported”
...
},
}
Required binding to a value set definition means that one of the codes from the specified value set SHALL be used and using only text is not valid. In this IG, we have defined the Extensible + Max-ValueSet binding to allow for either a code from the specified value set or text. Multiple codings (translations) are permitted as is discussed below.
Atlernate codes may be provided in addition to the standards codes defined in required or extensible value sets. The alternate codes are called “translations”. These translations may be equivalent to or narrower in meaning to the standard concept code.
Example of multiple translation for Body Weight concept code.
"code": {
"coding": [
{
"system": "http://loinc.org", //NOTE:this is the standard concept defined in the value set//
"code": "29463-7",
"display": "Body Weight"
},
//NOTE:this is a translation to a more specific concept
{
"system": "http://loinc.org",
"code": "3141-9",
"display": "Body Weight Measured"
},
//NOTE:this is a translation to a different code system (Snomed CT)
{
"system": "http://snomed.info/sct",
"code": “364589006”,
"display": "Body Weight"
}
//NOTE:this is a translation to a locally defined code
{
"system": "http://AcmeHealthCare.org",
"code": “BWT”,
"display": "Body Weight"
}
],
"text": "weight"
},
Example of translation of NDC vaccine code to CVX code.
"vaccineCode" : {
"coding" : [
{
"system" : "http://hl7.org/fhir/sid/cvx",
"code" : "158",
"display" : "influenza, injectable, quadrivalent"
},
{
"system" : "http://hl7.org/fhir/sid/ndc",
"code" : "49281-0623-78",
"display" : "FLUZONE QUADRIVALENT"
}
]
},
The Argonaut Vital Signs Profile and Argonaut Result Observation Profile require using UCUM units. This guidance specifies how to represent the Quantity datatype when the ccorrect UCUM units are missing or the units are missing altogether which will likely occur in the real world. If the wrong UCUM units are used for the vitals signs listed in the Vital Signs Profile, that should lead to a validation failure.
UCUM code provided
"valueQuantity": {
"value": 26.0,
"unit": "g/mL",
"system": "http://unitsofmeasure.org",
"code": "g/mL"
}
free text units (no UCUM units): if have no UCUM units then represent units only in units
element. if there is another Units codesystem they would go here as well.
"valueQuantity": {
"value": 26.0,
"unit": "RR",
}
no units
"valueQuantity": {
"value": 26.0
}
The interactions on IG page are defined like this:
GET [base]/[Resource-type]/[id] {parameters}
For more information see the FHIR RESTful API
In the simplest case, a search is executed by performing a GET operation in the RESTful framework:
GET [base]/[Resource-type]?name=value&…
For this RESTful search (see definition in RESTful API), the parameters are a series of name=[value] pairs encoded in the URL. The search parameter names are defined for each resource. For example the Observation resource the name “code” for search on the LOINC code. See Searching for more information about searching in REST, messaging, and services.
There are three ways to search for resources associated with a specific patient depending on the context and implementation. These three searches result in the same outcome.:
GET [base]/[Resource-type]?patient=24342{&otherparameters}
Note that all the search interactions in this IG are published using the above syntax.
However there are several variations to this syntax:
GET [base]/[Resource-type]?Subject=[id]{&other parameters}
GET [base]/[Resource-type]?Subject=Patient/[id]{&other parameters}
GET [base]/[Resource-type]?Subject._id=[id]{&other parameters}
GET [base]/[Resource-type]?subject:Patient=[id]{&other parameters}
GET [base]/[Resource-type]?subject:Patient=Patient/[id]{&other parameters}
GET [base]/[Resource-type]?subject:Patient=https://[url]/Patient/id{&other parameters}
GET [base]/[Resource-type]?subject:Patient._id=[id]{&other parameters}
GET [base]/[Resource-type]?patient:Patient=https://[url]/Patient/id{&other parameters}
GET [base]/[Resource-type]?other-parameters
NOTE:
In order to manage the number of search results returned, the server may choose to return the results in a series of pages. The search result set contains the URLs that the client uses to request additional pages from the search set. For a simple RESTful search, the page links are contained in the returned bundle as links. See the core specification for more information