The formal definitions for the elements in the labreport resource. Also available as an XML file.
LabReport |
Definition | The findings and interpretation of pathology tests performed on tissues and body fluids. This is typically done in a laboratory but may be done in other environments such as at the point of care |
Control | 1..1 |
Requirements | Use to record any pathology test result, including the result of a test on a specimen taken as part of a composite procedure or operation. |
Comments | Not to be used for reporting on non-pathology test results e.g. diagnostic imaging, ECG or respiratory function tests. Not to be used to represent an entire cumulative report. This Pathology test result archetype represents only one of the result sets that is usually viewed as a vertical in a cumulative test report. A cumulative report is a view that is constructed from the results represented by multiple OBSERVATION archetypes. This archetype is suitable for representation of general pathology test results, but not intended to cover full synoptic reports. For these, additional resources are required to represent the data properly |
RIM Mapping | Observation[isNormalAct() and subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and domainMember("LabObservationType", code)] |
LabReport.status |
Definition | The status of the pathology test result as a whole |
Control | 1..1 |
Type | code from LabReportStatus |
Must Understand | true |
Requirements | Labs routinely issue provisional/incomplete reports, or withdraw previously released reports |
RIM Mapping | registered: ./statusCode[isNormalDatatype()]="new";
interim: ./statusCode[isNormalDatatype()]="active";
final: ./statusCode[isNormalDatatype()]="complete" and not(./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseLabOrder", code) and isNormalAct()]);
amended: ./statusCode[isNormalDatatype()]="complete" and ./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#CACT") and moodCode="EVN" and domainMember("ReviseLabOrder", code) and isNormalAct() and statusCode="completed"];
cancelled:
./statusCode[isNormalDatatype()]="aborted";
withdrawn: ./statusCode[isNormalDatatype()]="obsolete" |
LabReport.issued |
Definition | The date and/or time that the result was issued from the source for the recorded ‘Test result status |
Control | 1..1 |
Type | instant |
Must Understand | true |
Requirements | Clinicians need to be able to check the date that the report was released |
Comments | May be different from LabReport.updated, because that is the status of this record, not the report the record is about |
RIM Mapping | firstOf(unique(./participation[isHighest(priorityCode) and typeCode="VRF" and isNormalParticipation()]/time[type="TS"]),
unique(./participation[isHighest(priorityCode) and typeCode="AUT" and isNormalParticipation()]/time[type="TS"])) |
LabReport.patient |
Definition | The patient about who the report is about |
Control | 1..1 |
Type | Resource(Patient) |
Must Understand | true |
Requirements | Must know the patient context |
RIM Mapping | unique(./participation[isHighest(priorityCode) and typeCode="SBJ" and isNormalParticipation()]/role[classCode="PAT"]) |
To Do | need to check the wording -is it about, upon, for? |
LabReport.admission |
Definition | The admission that this diagnostic investigation is associated with |
Control | 0..1 |
Type | Resource(Admission) |
Requirements | Some institutions track and file diagnostic reports under a specific admission |
RIM Mapping | unique(./inboundRelationship[isHighest(priorityCode) and typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#ENC", code) and moodCode="EVN" and isNormalAct()]) |
To Do | Reckon this is not 80% |
LabReport.laboratory |
Definition | The laboratory service that issued the report |
Control | 1..1 |
Type | Resource(Organization) |
Requirements | Need to know how to contact if there are queries about the results. Also may need to track the source of reports for secondary data analysis |
Comments | This is not necessarily the source of the atomic reports - it's the lab that takes responsibility for the clinical report |
RIM Mapping | unique(./participation[isHighest(priorityCode) and typeCode="AUT" and isNormalParticipation()]/role[subsumesCode("RoleClass#ASSIGN", classCode)]/scoper[subsumesCode("EntityClass#ORG", classCode) and determinerCode="INSTANCE"]) |
LabReport.reportId |
Definition | The local ID assigned to the report by the order filler, usually by the Laboratory Information System (LIS). |
Control | 0..1 |
Type | Identifier |
Requirements | Need to know what identifier to use when making queries about this report from the source laboratory |
RIM Mapping | unique(./id[displayable="true" and scope="OBJ"]) |
LabReport.requestDetail |
Definition | Details concerning a single pathology test requested. |
Control | 0..* |
Requirements | Need to be able to track completion of requests based on reports issued, and also to report what diagnostic test swere requested (not always the same as what is delivered) |
Comments | Note: Usually there is one test request for each result, however in some circumstances multiple test requests may be represented using a single Pathology test result resource |
RIM Mapping | unique(./outboundRelationship[typeCode="FLFS" and isNormalActRelationship()]/target[subsumesCode("ActClass#OBS", classCode) and subsumes("ActMood#PRMS", moodCode) and isNormalAct()]) |
LabReport.requestDetail.requestOrderId |
Definition | The local ID assigned to the order by the order requester. |
Control | 0..1 |
Type | Identifier |
Requirements | Need to be able to track completion of requests based on reports issued |
Comments | Equivalent to the Placer Order Identifier |
RIM Mapping | unique(./outboundRelationship[typeCode="FLFS" and isNormalActRelationship()]/target[subsumesCode("ActClass#OBS", classCode) and subsumes("ActMood#RQO", moodCode) and isNormalAct()]/id[scope="OBJ" and displayable="true"]) |
To Do | Reckon this is not 80% |
LabReport.requestDetail.receiverOrderId |
Definition | The local ID assigned to the test order by the order filler, usually by the Laboratory Information System (LIS). |
Control | 0..1 |
Type | Identifier |
Requirements | Need to be able to track completion of requests based on reports issued |
Comments | Usually equivalent to the DICOM Accession Number and the Filler Order Identifier. |
RIM Mapping | unique(./id[scope="OBJ" and displayable="true"]) |
To Do | Reckon this is not 80% |
LabReport.requestDetail.requestTest |
Definition | Identification of pathology test requested, |
Control | 0..* |
Type | CodeableConcept from LabRequests |
Requirements | Need to be able to report what diagnostic test swere requested (not always the same as what is delivered) |
Comments | Useful where the test requested differs from the test actually performed. |
RIM Mapping | ./code |
LabReport.requestDetail.requester |
Definition | Details of the clinician or organisation requesting the laboratory test. |
Control | 0..1 |
Type | Resource(Agent|Organization) |
Requirements | The requesting clinician may need to be contacted concerning the interpretation of the lab report |
RIM Mapping | Agent: unique(./participation[isHighest(priorityCode) and typeCode="AUT" and isNormalParticipation()]/role[subsumesCode("RoleClass#ASSIGN", classCode)]
Organization: unique(./participation[isHighest(priorityCode) and typeCode="AUT" and isNormalParticipation()]/role[subsumesCode("RoleClass#ASSIGN", classCode)]/scoper[subsumesCode("EntityClass#ORG", classCode) and determinerCode="INSTANCE" and code[isNormalDatatype]])
|
LabReport.requestDetail.clinicalInfo |
Definition | Details of the clinical information provided to the laboratory along with the original request |
Control | 0..1 |
Type | Resource(Any) |
Requirements | Knowing the clinical information may influence the interpretation of the result |
RIM Mapping | ./outboundRelationship[typeCode="PERT" and isNormalActRelationship()]/target |
To Do | This isn't really *ANY* resource. You can't send a drug or an Animal or a bunch of other things. What you really want here are "acts", and I suspect there's a constraint that the subject of the LabReport must have participated in them as subject or perhaps in some other way. |
LabReport.reportName |
Definition | Identification of the pathology test performed, sometimes including specimen type. |
Control | 1..1 |
Type | CodeableConcept from LabReportNames |
Must Understand | true |
Requirements | Need to know what report this is, so clinicians can filter/find the reports they are looking for |
Comments | A test result may be for a single analyte, or a group of items, including panel tests. |
RIM Mapping | ./code |
LabReport.service |
Definition | The diagnostic service that performs the examination e.g. biochemistry, haematology. |
Control | 0..1 |
Type | CodeableConcept from LabServices |
Requirements | Help clinicians filter/find the reports they are looking for |
RIM Mapping | unique(./inboundRelationship[typeCode="COMP" and isNormalActRelationship()]/source[subsumesCode("ActClass#LIST", classCode) and moodCode="EVN" and inDomain(code,"Lab Service") and isNormalAct()]/code |
To Do | I'm not sure this is in the 80%. |
LabReport.diagnosticTime |
Definition | The diagnostically relevant time for this report |
Control | 1..1 |
Type | dateTime |
Must Understand | true |
Requirements | Need to know where in the patient history to file/present this report |
Comments | The diagnostically relevant time can be derived from the specimen collection times, but the specimen information is not always available, and the exact relationship is not always automatic |
RIM Mapping | ./effectiveTime[type="TS"] |
LabReport.specimen |
Definition | Details about the specimen if all individual test results are derived from the same specimen |
Control | 0..* |
Type | Resource(Specimen) |
Requirements | Need to be able to report information about the collected specimens on which the report is based |
Comments | If the specimen is sufficiently specified with a code in the Test result name, then this additional data may be redundant. If there are multiple specimens, these may be represented per 'Result group' |
RIM Mapping | unique(./participation[typeCode="SUBJ" and isNormalParticipation()]/role[subsumesCode("RoleClass#SPEC", classCode)]) |
LabReport.resultGroup |
Definition | A group of results. Results may be grouped by specimen, or by some value in LabReport.resultGroup.name to describe what binds all the results together. |
Control | 0..* |
Must Understand | true |
Requirements | Need to be able to report groups of results, where the result grouping is arbitrary, but meaningful |
Comments | Many (most) lab reports don't really have a meaningful group. In these cases, just create a single group with no specimen or name |
RIM Mapping | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[isNormalAct() and subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and fromDomain(code, "LabObservationBattery")] |
LabReport.resultGroup.name |
Definition | A code or name that describes the group of results |
Control | 0..1 |
Type | CodeableConcept from LabResultGroupNames |
Must Understand | true |
Comments | For example, the antibody code for a goup of antibody related test, or the organism code for a group of isolate/sensitivities. Leave blank if there is no particular meaning associated with the group |
RIM Mapping | ./code |
LabReport.resultGroup.specimen |
Definition | Details about the individual specimen to which these ‘Result group’ test results refer, where testing of multiple specimens is required. |
Control | 0..1 |
Type | Resource(Specimen) |
Requirements | Need to be able to report information about the collected specimens on which the report is based |
RIM Mapping | unique(./participation[typeCode="SBJ" and isNormalParticipation()]/role[subsumesCode("RoleClass#SPEC", classCode)]) |
LabReport.resultGroup.result |
Definition | Specific detailed result, including both the value of the result item, and additional information that may be useful for clinical interpretation. Results include whatever specific data items pathology labs report as part of the clinical service; it is not confined to measurements. |
Control | 1..* |
Must Understand | true |
Requirements | Need to report results with information that assist with interpretation |
RIM Mapping | ./outboundRelationship[typeCode="COMP" and isNormalActRelationship()]/target[subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and isNormalAct() and fromDomain(code, "LabObservationResult")] |
LabReport.resultGroup.result.name |
Definition | Identifies the meaning of the value |
Control | 0..1 |
Type | CodeableConcept from LabResultNames |
Must Understand | true |
Requirements | Need to know what the result is about |
Comments | results are fundamentally a name - value pair with additional clarifying information |
RIM Mapping | ./code |
LabReport.resultGroup.result.value[x] |
Definition | Actual value of the result. Most result values will be numerical measurements, but others may be coded concepts, free text, or multimedia images |
Control | 0..1 |
Type | Quantity|CodeableConcept|Attachment|Ratio|Choice|Period|string |
Must Understand | true |
Requirements | Need a value for the result |
RIM Mapping | ./value |
LabReport.resultGroup.result.flag |
Definition | Flag indicating the abnormal status of the result |
Control | 0..1 |
Type | code from LabResultFlag |
Must Understand | true |
RIM Mapping | ./interpretationCode |
To Do | The proposed set of codes are too narrow (and doesn't map well to v3.) |
LabReport.resultGroup.result.status |
Definition | The status of the result value |
Control | 1..1 |
Type | code from LabReportStatus |
Must Understand | true |
Requirements | Need to track the status of individual results - some results are finalised before the whole report is finalised |
RIM Mapping | (as per LabReport.status) |
LabReport.resultGroup.result.comments |
Definition | May include statements about significant, unexpected or unreliable. values, or information about the source of the value where this may be relevant to the interpretation of the result. |
Control | 0..1 |
Type | string |
Must Understand | true |
Requirements | Need to be able to provide free text additional information |
RIM Mapping | unique(./inboundRelationship[typeCode="SUBJ" and isNormalActRelationship()]/source[subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and mapsTo(code, "LOINC#
48767-8") and isNormalAct()]/value[type="ST"]) |
LabReport.resultGroup.result.referenceRange |
Definition | Guidance on how to interpret the value by comparison to a normal or recommended range |
Control | 0..* |
Must Understand | true |
Requirements | Need to be able to provide multiple reference ranges |
Comments | Most results only have one reference range. Some non-numerical results don't have a reference range |
RIM Mapping | ./outboundRelationship[typeCode="REFV" and isNormalActRelationship()]/target[subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and isCriterionInd="true" and isNormalAct()] |
To Do | Are multiple reference ranges in the 80%? |
LabReport.resultGroup.result.referenceRange.meaning |
Definition | Code for the meaning of the reference range |
Control | 0..1 |
Type | CodeableConcept from LabReferenceRanges |
Requirements | Need to be able to say what kind of reference range this is - normal, recommended, therapeutic, or perhaps what state this reference range applies to (i.e. hormonal cycles) |
RIM Mapping | ./interpretationCode |
LabReport.resultGroup.result.referenceRange.range[x] |
Definition | Actual value of the reference range. May be a quantity (<20mg/L), an range (10-20 umol/L), or some text |
Control | 1..1 |
Type | Quantity|Range|string |
Requirements | Need to be able to report numerical or text reference ranges, and handle legacy data |
Comments | Text reference ranges are typically used in endocrinology, or for legacy data with string reference ranges |
RIM Mapping | ./value[type=("PQ", "IVL_PQ", "ST")] |
LabReport.conclusion |
Definition | Concise and clinically contextualised narrative interpretation of the pathology test results. |
Control | 0..1 |
Type | string |
Must Understand | true |
Requirements | Need to be able to provide a conclusion that is not lost amongst the basic result data |
Comments | common reports don't have a conclusion, but some do |
RIM Mapping | unique(./inboundRelationship[typeCode="SPRT" and isNormalActRelationship()]/source[subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and mapsTo(code, "LOINC#
48767-8") and isNormalAct()]/value[type="ST"]) |
To Do | Is this in the 80%? |
LabReport.codedDiagnosis |
Definition | Codes for the conclusion |
Control | 0..* |
Type | CodeableConcept from LabDiagnosisCodes |
RIM Mapping | unique(./inboundRelationship[typeCode="SPRT" and isNormalActRelationship()]/source[subsumesCode("ActClass#OBS", classCode) and moodCode="EVN" and subsumesCode(code, "LOINC#
54531-9") and isNormalAct()]/value[type="CD"]) |
LabReport.representation |
Definition | Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they must be semantically equivalent. |
Control | 0..* |
Type | Attachment |
Must Understand | true |
Requirements | Laboratory needs to be able to provide it's own fully formatted report for clinical fidelity |
Comments | Possible formats: text/html, text/plain, text/rtf, application/msword, application/pdf, application/rtf, application/vnd.oasis.opendocument.text, application/vnd.openxmlformats-officedocument.wordprocessingml.document |
RIM Mapping | ./text[type="ED"] |
LabReport.extension |
Definition | See Extensions |
Control | 0..* |
Type | Extension |
RIM Mapping | N/A |
LabReport.text |
Definition | Text summary of resource (for human interpretation) |
Control | 1..1 |
Type | Narrative |
RIM Mapping | unique(./text[type="ST"]) |