This Observation profile is part of the set of resource profiles supported by the API Server used with the athenaPractice 12.3 and athenaFlow 9.12 products. It further describes read, search, create and update capabilities of these products.
This resource captures measurements and simple assertions made about a patient, device, or other subject.
This profile is used to define the content that will be returned by the API Server in response to requests to access Observation resources. All elements listed in the differential profile view are Supported, which means that the API Server is capable of supplying these fields from the product database when they have been populated via the product or its APIs.
The profile also defines the content that must be supplied to the API Server in response to requests to populate Observation resources. Fields which are marked as Mandatory in this profile are those that must be supplied to the API Server in content used to populate a resource.
The Observation resource is derived from the OBS tables in athenaPractice and athenaFlow Specific detail can be found in the Mappings section in the profile detail page.
The operations supported by this resource are listed below.
Read operations are executed as specified in the HL7 FHIR RESTful API implementation definition. To read a Observation, an application shall perform an HTTP GET, specifying the identifier of the resources being retrieved.
GET [base]/fhir/Observation/[id]{?_format=[json|xml]&_summary=[true|data]}
Parameter | Description |
---|---|
[base] | Specifies the base URL of the FHIR Server, e.g., https://cpsapisandbox.virenceaz.com:9443/demoAPIServer |
[id] | Specifies the identifier of the Observation resource to retrieve |
[_format] | Specifies the format of the output and may be xml or json. When present, the _format value overrides the value of the Accept header in the request. |
[_summary] | Filters the output to include only summary elements (_summary=true) or to omit the generated narrative (_summary=data). Note: If the generated html narrative for the resource is not going to be used by the call, using _summary=data provides slightly improved API response times. |
Response Code | Description |
---|---|
200 OK | The requested resource was found and is contained within the body of the HTTP response. |
401 Unauthorized | Authorization is required for this request, and either the Authorization header is missing or the supplied user credentials in the Authorization header are not valid or have expired. The body of the HTTP response will contain an OperationOutcome resource that indicates that Authorization is required. |
404 Not Found | The requested resource does not exist. The body of the HTTP response will contain an OperationOutcome resource that indicates that the resource could not be found. |
500 Server Error | The server may return other error codes to indicate other error conditions. The body of the HTTP response will contain an OperationOutcome resource that indicates the nature of the error. |
Search operations are executed as specified in the HL7 FHIR RESTful API implementation definition. To search for Observation resources, an application shall perform an HTTP GET, specifying the query parameters associated with the resource.
GET [base]/fhir/Observation?{search-parameters}{&_count=[max-results]&_format=[json|xml]&_summary=[true|text|data]}
Parameter | Description |
---|---|
[base] | Specifies the base URL of the FHIR Server, e.g., https://cpsapisandbox.virenceaz.com:9443/demoAPIServer |
[_count] | Specifies the maximum number of search results to return in a single query. Note: The count of results does not limit the number of additional resources returned via the _include parameter. No more than max-results Observation resources which match the search criteria will be returned. The API Server has default and maximum limits for the value that can be specified for this parameter. These limits may vary depending upon the client application vendors participation level in the AthenaHealth Partner program. Note: The API Server support the HL7 FHIR Paging capability. |
[_format] | Specifies the format of the output and may be xml or json. When present, the _format value overrides the value of the Accept header in the request. |
[_summary] | Filters the output to include only narrative elements (_summary=text), summary elements (_summary=true) or to omit the generated narrative (_summary=data). Note: If the generated html narrative for the resource is not going to be used by the call, using _summary=data provides improved API response times, especially when returning larger result sets. |
_id (token ) | The ID of the resource |
_lastUpdated (date ) | |
_lastUpdated-fromnow (quantity ) | Like _lastUpdated except expressed as a positive or negative offset from the current time in units of time , e.g. _lastUpdated-fromnow=ge7||d for more than seven days in the future or =le-2||mo for less than two months in the past. The unit must be specified. |
_recent (quantity ) | |
_security (token ) | |
_tag (token ) | |
category (token ) | The classification of the type of observation |
code (token ) | The code of the observation type |
date (date ) | Obtained date/time. If the obtained element is a period, a date that falls in the period |
date-fromnow (quantity ) | Like date except expressed as a positive or negative offset from the current time in units of time , e.g. date-fromnow=ge7||d for more than seven days in the future or =le-2||mo for less than two months in the past. The unit must be specified. |
encounter (reference ) | Healthcare event related to the observation |
encounter-or-historical (reference ) | |
identifier (token ) | The unique id for a particular observation |
patient (reference ) | The subject that the observation is about (if patient) |
performer (reference ) | Who performed the observation |
status (token ) | The status of the observation |
subject (reference ) | The subject that the observation is about |
value-concept (token ) | The value of the observation, if the value is a CodeableConcept |
value-quantity (quantity ) | The value of the observation, if the value is a Quantity, or a SampledData (just search on the bounds of the values in sampled data) |
Response Code | Description |
---|---|
200 OK | The query was performed and any results found are contained within the body of the HTTP response. Note: The search API will return 200 OK when the query itself is successful, regardless of whether or not any matching results were found. |
401 Unauthorized | Authorization is required for this request, and either the Authorization header is missing or the supplied user credentials in the Authorization header are not valid or have expired. The body of the HTTP response will contain an OperationOutcome resource that indicates that Authorization is required. |
500 Server Error | The server may return other error codes to indicate other error conditions. The body of the HTTP response will contain an OperationOutcome resource that indicates the nature of the error. |
Create operations are executed as specified in the HL7 FHIR RESTful API implementation definition. To create a new Observation resource, an application must perform an HTTP POST, specifying the content of the resource in the body of the request.
POST [base]/fhir/Observation?{_format=[json|xml]}
Parameter | Description |
---|---|
[_format] | Specifies the format of the output and may be xml or json. When present, the _format value overrides the value of the Accept header in the request. |
Response Code | Description |
---|---|
201 Created | The resource was created at the location specified in the HTTP Location header. Note: Unsupported fields will be accepted in a request but will not be persisted to the database. Some fields may be mapped to database specific codes which closely but not perfectly match the input. See the HL7 FHIR specification for more detail on server permitted changes. |
400 Bad Request | The resource could not be parsed, or failed basic validation rules. The body of the HTTP response will contain an OperationOutcome resource that provide more detail about the reason for the failure. |
401 Unauthorized | Authorization is required for this request, and either the Authorization header is missing or the supplied user credentials in the Authorization header are not valid or have expired. The body of the HTTP response will contain an OperationOutcome resource that indicates that Authorization is required. |
422 Unprocessable Entity | The proposed resource violated server business rules. For example, a required field may be missing or a field may contain a value that is not supported by the API Server. The body of the HTTP response will contain an OperationOutcome resource that provide more detail about the reason for the failure. |
500 Server Error | The server may return other error codes to indicate other error conditions. The body of the HTTP response will contain an OperationOutcome resource that indicates the nature of the error. |
Update operations are executed as specified in the HL7 FHIR RESTful API implementation definition. To create a new Observation resource, an application must perform an HTTP PUT, specifying the content of the resource in the body of the request.
PUT [base]/fhir/Observation/[id]?{_format=[json|xml]}
Parameter | Description |
---|---|
[_format] | Specifies the format of the output and may be xml or json. When present, the _format value overrides the value of the Accept header in the request. |
Response Code | Description |
---|---|
200 OK | The resource was updated at the location specified in the HTTP Location header. Note: Unsupported fields will be accepted in a request but will not be persisted to the database. Some fields may be mapped to database specific codes which closely but not perfectly match the input. See the HL7 FHIR specification for more detail on server permitted changes. |
400 Bad Request | The resource could not be parsed, or failed basic validation rules. The body of the HTTP response will contain an OperationOutcome resource that provide more detail about the reason for the failure. |
401 Unauthorized | Authorization is required for this request, and either the Authorization header is missing or the supplied user credentials in the Authorization header are not valid or have expired. The body of the HTTP response will contain an OperationOutcome resource that indicates that Authorization is required. |
422 Unprocessable Entity | The proposed resource violated server business rules. For example, a required field may be missing or a field may contain a value that is not supported by the API Server. The body of the HTTP response will contain an OperationOutcome resource that provide more detail about the reason for the failure. |
500 Server Error | The server may return other error codes to indicate other error conditions. The body of the HTTP response will contain an OperationOutcome resource that indicates the nature of the error. |
The official URL for this profile is:
http://hl7.org/fhir/StructureDefinition/observation-profile
Measurements and simple assertions
Name | Flags | Card. | Type | Description & Constraints | |
---|---|---|---|---|---|
![]() ![]() | I | 0..* | Observation | Measurements and simple assertions obs-7: Component code SHALL not be same as observation code obs-6: SHALL only be present if Observation.value[x] is not present | |
![]() ![]() ![]() | S ∑ | 0..1 | Meta | Unique Id for this particular observation | |
![]() ![]() ![]() | ?! ∑ | 0..1 | uri | A set of rules under which this content was created | |
![]() ![]() ![]() | 0..1 | code | Language of the resource content Binding: IETF BCP-47 ![]() | ||
![]() ![]() ![]() | I | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
![]() ![]() ![]() | 0..* | Resource | Contained, inline Resources | ||
![]() ![]() ![]() | 0..* | Extension | Additional Content defined by implementations | ||
![]() ![]() ![]() | ?! | 0..* | Extension | Extensions that cannot be ignored | |
![]() ![]() ![]() | 0..* | Identifier | Unique Id for this particular observation | ||
![]() ![]() ![]() | ?! S∑ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required ) | |
![]() ![]() ![]() | 0..1 | CodeableConcept | Classification of type of observation Binding: Observation Category Codes (example ) | ||
![]() ![]() ![]() ![]() | 0..* | Extension | Additional Content defined by implementations | ||
![]() ![]() ![]() ![]() | ∑ | Coding | Code defined by a terminology system Slice: Unordered, Closed, by coding | ||
![]() ![]() ![]() ![]() | ∑ | 0..3 | Coding | Code defined by a terminology system | |
![]() ![]() ![]() ![]() | ∑ | 0..1 | Coding | Code defined by a terminology system | |
![]() ![]() ![]() ![]() | ∑ | 0..1 | Coding | Code defined by a terminology system | |
![]() ![]() ![]() ![]() | ∑ | 0..1 | Coding | Code defined by a terminology system | |
![]() ![]() ![]() ![]() | ∑ | 0..1 | string | Plain text representation of the concept | |
![]() ![]() ![]() | S ∑ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINC Codes (example ) | |
![]() ![]() ![]() ![]() | 0..* | Extension | Additional Content defined by implementations | ||
![]() ![]() ![]() ![]() | ∑ | Coding | Code defined by a terminology system Slice: Unordered, Closed, by coding | ||
![]() ![]() ![]() ![]() | ∑ | 0..4 | Coding | Code defined by a terminology system | |
![]() ![]() ![]() ![]() | ∑ | 0..1 | Coding | Code defined by a terminology system | |
![]() ![]() ![]() ![]() | ∑ | 0..1 | Coding | Code defined by a terminology system | |
![]() ![]() ![]() ![]() | ∑ | 0..1 | Coding | Code defined by a terminology system | |
![]() ![]() ![]() ![]() | ∑ | 0..1 | Coding | Code defined by a terminology system | |
![]() ![]() ![]() ![]() | ∑ | 0..1 | string | Plain text representation of the concept | |
![]() ![]() ![]() | S ∑ | 0..1 | Reference (Patient ) | Who and/or what this is about | |
![]() ![]() ![]() | S | 0..1 | Reference (Encounter ) | Healthcare event during which this observation is made | |
![]() ![]() ![]() | S ∑ | 0..1 | dateTime | Clinically relevant time/time-period for observation | |
![]() ![]() ![]() | S ∑ | 0..1 | instant | Date/Time this was made available | |
![]() ![]() ![]() | ∑ | Reference (Practitioner | Organization | Patient | RelatedPerson ) | Who is responsible for the observation Slice: Unordered, Closed, by type | ||
![]() ![]() ![]() | ∑ | 1..2 | Reference (Practitioner | Organization | Patient | RelatedPerson ) | Who is responsible for the observation | |
![]() ![]() ![]() | S ∑ | 1..1 | Reference (Practitioner ) | Who is responsible for the observation | |
![]() ![]() ![]() | S ∑ | 0..1 | Reference (Organization ) | Who is responsible for the observation | |
![]() ![]() ![]() | S ∑ | 0..1 | Quantity , CodeableConcept | Actual result | |
![]() ![]() ![]() | I | 0..1 | CodeableConcept | Why the result is missing Binding: Observation Value Absent Reason (extensible ) | |
![]() ![]() ![]() | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Observation Interpretation Codes (extensible ) | ||
![]() ![]() ![]() | 0..1 | string | Comments about result | ||
![]() ![]() ![]() | 0..1 | CodeableConcept | Observed body part Binding: SNOMED CT Body Structures (example ) | ||
![]() ![]() ![]() | 0..1 | CodeableConcept | How it was done Binding: Observation Methods (example ) | ||
![]() ![]() ![]() | 0..1 | Reference (Specimen ) | Specimen used for this observation | ||
![]() ![]() ![]() | 0..1 | Reference (Device | DeviceMetric ) | (Measurement) Device | ||
![]() ![]() ![]() | I | 0..* | BackboneElement | Provides guide for interpretation obs-3: Must have at least a low or a high or text | |
![]() ![]() ![]() ![]() | 0..* | Extension | Additional Content defined by implementations | ||
![]() ![]() ![]() ![]() | ?! | 0..* | Extension | Extensions that cannot be ignored | |
![]() ![]() ![]() ![]() | I | 0..1 | SimpleQuantity | Low Range, if relevant | |
![]() ![]() ![]() ![]() | I | 0..1 | SimpleQuantity | High Range, if relevant | |
![]() ![]() ![]() ![]() | 0..1 | CodeableConcept | Indicates the meaning/use of this range of this range Binding: Observation Reference Range Meaning Codes (example ) | ||
![]() ![]() ![]() ![]() | 0..1 | Range | Applicable age range, if relevant | ||
![]() ![]() ![]() ![]() | 0..1 | string | Provides guide for interpretation | ||
![]() ![]() ![]() | ∑ | 0..* | BackboneElement | Resource related to this observation | |
![]() ![]() ![]() ![]() | 0..* | Extension | Additional Content defined by implementations | ||
![]() ![]() ![]() ![]() | ?! | 0..* | Extension | Extensions that cannot be ignored | |
![]() ![]() ![]() ![]() | 0..1 | code | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by Binding: ObservationRelationshipType (required ) | ||
![]() ![]() ![]() ![]() | 1..1 | Reference (Observation | QuestionnaireResponse ) | Resource that is related to this one | ||
![]() ![]() ![]() | ∑ | 0..* | BackboneElement | Component results | |
![]() ![]() ![]() ![]() | 0..* | Extension | Additional Content defined by implementations | ||
![]() ![]() ![]() ![]() | ?! | 0..* | Extension | Extensions that cannot be ignored | |
![]() ![]() ![]() ![]() | ∑ I | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINC Codes (example ) | |
![]() ![]() ![]() ![]() | ∑ | 0..1 | Quantity , CodeableConcept , string , Range , Ratio , SampledData , Attachment , time , dateTime , Period | Actual component result | |
![]() ![]() ![]() ![]() | I | 0..1 | CodeableConcept | Why the component result is missing Binding: Observation Value Absent Reason (extensible ) | |
![]() ![]() ![]() ![]() | 0..* | Provides guide for interpretation of component result | |||
The mappings in this section represent the how data stored within athenaFlow is served through the product's APIs.
Use of this information is subject to the API Server
Terms and Conditions .
Observation Profile | ||
Observation | Observation-Profile | FHIR_OBSERVATIONVIEW |
├ id | OBSID | %OBSID% |
├ identifier | MakeIdentifier("U",getSiteSystem("ObservationId"),%OBSID%) | |
├ status | STATE | MapCode(%STATE%,"OBSSTATUS") |
│ ├ coding | OBSERVATION CATEGORY CODINGS | |
│ ├ coding | HG_GROUPID | MakeCodingWithSystem(%HG_GROUPID%, getSiteCodeSystem("HIERGRPS"), %HG_GROUPNAME%) |
│ ├ coding | LOP_CODING | MakeCodingWithSystem(%LOP_CODE%,MapString(%LOP_CODETYPE%,"OIDTOURL"), %LOP_NAME%) |
│ ├ coding | TOCATEGORYCODE | MapCoding(%HG_GROUPID%, "OBSHIERGRPSTOCATEGORY") |
│ ├ text | HG_GROUPNAME | %HG_GROUPNAME% |
│ ├ coding | OBSERVATION CODINGS | |
│ ├ coding | TOCODE | MakeObservationCodingList(%HDID%, %OBSHEAD_DESCRIPTION%) |
│ ├ coding | HDID | MakeRecentCoding(%HDID%,getSiteCodeSystem("HDID"),%NAME%) |
│ ├ coding | C1_CODE | MakeCodingList(%C1_CODE%, %C1_CODING_SYSTEM_NAME%,%C1_DESCRIPTION%, "OIDTOURL") |
│ ├ coding | C2_CODE | MakeCodingList(%C2_CODE%,%C2_CODING_SYSTEM_NAME%, %C2_DESCRIPTION%, "OIDTOURL") |
│ └ text | OBSHEADDESCRIPTION | %OBSHEAD_DESCRIPTION% |
├ subject | PID | MakeReference("PERSON",%PID%,"Patient") |
├ encounter | SDID | MakeReference("DOCUMENT",%SDID%,"Encounter") |
├ effectiveDateTime | OBSDATE | %OBSDATE% |
├ issued | DB_UPDATED_DATE | %DB_UPDATED_DATE% |
├ performer | Performer | |
├ performer | PractitionerPerformer | MakeReference("USR",%USRID%,"Practitioner") |
├ performer | OrganizationPerformer | MakeLabReference(%SDID%, %C1_CODE%, %C2_CODE%) |
├ value[x] | OBSVALUE | IfEqual( %OBSTYPE%,"N").Then(Context::MakeQuantity,%OBSVALUE%,%UNIT%) | IfNotEqual(%OBSTYPE%,"N").Then(Context::MakeObservationValue,%HDID%, %OBSVALUE%) |
├ interpretation | ABNORMAL | MapConcept(%ABNORMAL%,"OBSABNORMAL") |
└ comments | DESCRIPTION | %DESCRIPTION% |
└ text | RANGE | %RANGE% |